この記事でのバージョン
Unity 5.3.4f1 Personal
はじめに
以前、スクリプトからエディタの再生を停止する方法が分からず、
代替案としてエディタを強制終了するという方法をご紹介しました。
ありがたいことに、その記事のコメントにて
スクリプトからエディタの再生を停止する方法を教えていただきました!
今回はそんな感じの記事です。
EditorApplication
スクリプトからエディタの再生を停止するには
EditorApplication.isPlayingをfalseにするだけでいいようです。
逆にEditorApplication.isPlayingをtrueにすると再生する事も出来ます。
さらにEditorApplication.isPausedで一時停止or再開、
EditorApplication.Stepで1フレーム進ませる、
という事も可能なようです。
まとめると以下のような感じ。
using UnityEditor; public class NewBehaviourScript { //再生 [MenuItem ("Custom/Play")] private static void Play () { EditorApplication.isPlaying = true; } //終了 [MenuItem ("Custom/End")] private static void End () { EditorApplication.isPlaying = false; } //一時停止 [MenuItem ("Custom/Pause")] private static void Pause () { EditorApplication.isPaused = true; } //再開 [MenuItem ("Custom/Resume")] private static void Resume () { EditorApplication.isPaused = false; } //1フレーム進ませる [MenuItem ("Custom/Step")] private static void Step () { EditorApplication.Step(); } //エディタを終了 [MenuItem ("Custom/Exit")] private static void Exit () { EditorApplication.Exit(0); } }
これをインポートすれば以下のようにツールバーから各メニューを実行できます!
ボタン押した方が早いですけどね!
おわりに
そもそもなんで、スクリプトからエディタの再生を停止する方法が知りたかったかと言うと、
エディタを実行し、なんらかの計算(結構時間がかかるやつ)を行い、
計算が終わったらエディタを終了したかったからです。
ちなみになんらかの計算というのは、ゲームバランスの自動調整です。
諸々の数値を自動で調整し、かつ自動でゲームを遊ばせて、結果を取得する
という具合に、ある程度自動で調整出来たら楽だなーてなことをやってました(:3っ)∋〜。