LoginSignup
0
0

Unity エディタ再起動方法 ( UnityHubが開いちゃう人向け )

Posted at

Unityエディタ拡張をしてたりしてエディタを再起動する機能を追加する時にググったコードだとUnityHubが起動するまでは行くけどそのあとにプロジェクトを開いてくれなかったのでちょっと調べてみた。

最初に試したコード

よくあるのは以下のような Process.Start でアプリケーションのパスを指定し、アプリ起動をしてからエディタを閉じる方法

static void Restart()
{
    Process.Start(EditorApplication.applicationPath);
    EditorApplication.Exit(0);
}

ただこの方法だと 2023/08/28 現在では UnityHub が開くのみでプロジェクトまでは開いてくれなった

解決策

Unityのフォーラムを見つけたのでそのコードを試してみた
https://forum.unity.com/threads/is-there-an-api-to-restart-the-editor-via-script.1021639/


static void Restart()
{
    EditorApplication.OpenProject(Directory.GetCurrentDirectory());
}

Unity の CsReference 覗いてみたところエディタの再起動は以下のようなコードになっていた
https://github.com/Unity-Technologies/UnityCsReference/blob/62633e3912ab891be4c6f5ef4500e69f59d85ed4/Editor/Mono/Inspector/PlayerSettingsEditor/PlayerSettingsEditor.cs#L2916

image.png

Environment.CurrentDirectory と Directory.GetCurrentDirectory() はどちらもカレントディレクトリのパスを返すプロパティ or メソッド
どちらを使うかはほぼ好みに分かれるけど Environment.CurrentDirectory の方は setter でカレントディレクトリを移動出来てしまうので取得オンリーの Directory.GetCurrentDirectory() を採用した

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0