Unity」カテゴリーアーカイブ

ゲームエンジン「Unity」に関するカテゴリーです。

UnityのCustomEditorでInspector表示を強制的に再描画する方法

UnityでCustomEditorを使っていて、内容が更新されているのにInspectorの表示が更新されないときはEditorUtility.SetDirty(target)を実行してみると良いそうです。

void OnInspectorGUI()
{
  EditorUtility.SetDirty(target);
}

リンク

How do you force a custom inspector to redraw? – Unity Answers
https://answers.unity.com/questions/333181/how-do-you-force-a-custom-inspector-to-redraw.html

Unityでゲームを終了させるコード

Unityのゲームを終了させたい場合、右上の×ボタンとかAlt+F4で終了させることもできますが、もう少しスマートにしたい場合はApplication.Quitを使うとよいそうです。

使い方

void Update()
{
  if (Input.GetKey(KeyCode.Escape)) {
    Application.Quit();
  }
}

ちなみに上のコードは、UnityのEditor上でDebugしているときには使えません。Editor上でDebugを終了させたい場合はUnityEditor.EditorApplication.isPlayingを使って次のような感じにすることができるそうです。

void Update()
{
  if (Input.GetKey(KeyCode.Escape)) {
#if UNITY_EDITOR
    UnityEditor.EditorApplication.isPlaying = false;
#else
    Application.Quit();
#endif
  }
}

リンク

Unity – Scripting API: Application.Quit
https://docs.unity3d.com/ScriptReference/Application.Quit.html

Application.Quit not working?! – Unity Answers
https://answers.unity.com/questions/899037/applicationquit-not-working-1.html

Post-processing Stackでエラー

Unity 2018.3に更新したら使っていた「Post-processing Stack」でエラーになっていたようです。

Assets\PostProcessing\Editor\PropertyDrawers\MinDrawer.cs(6,34):
error CS0104: 'MinAttribute' is an ambiguous reference between 'UnityEngine.PostProcessing.MinAttribute' and 'UnityEngine.MinAttribute'

詳しくは調べていませんが、GitHubにあるPost-processing Stack v2に置き換えてみたらとりあえずエラーは解消されるみたいです。

GitHub – Unity-Technologies/PostProcessing: Post Processing Stack
https://github.com/Unity-Technologies/PostProcessing

リンク

Post Processing Stack error. – Unity Forum
https://forum.unity.com/threads/post-processing-stack-error.554926/