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

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

Unityの自作スクリプトでEnable/Disableのチェックボックが表示されない場合

Unityでスクリプトを作りオブジェクトに適用してみると、稀にInspectorにEnable/Disableチェックボックスが表示されないことがあります。そんなときはStartメソッドを追加してみると良いそうです。

void Start()
{
}

困っている人は試してみてください。

リンク

component on/off checkbox not showing up in the inspector | Unity Community
https://forum.unity.com/threads/component-on-off-checkbox-not-showing-up-in-the-inspector.56980/

edit modeでOnRenderImageが呼び出されるタイミングについて

UnityのOnRenderImageは、play mode時は毎フレーム呼ばれるけれど、edit mode時は必要な時のみ呼ばれるという実装になっているそうです。

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

edit modeでOnRenderImageを呼び出したい場合は、

if (GUI.changed) {
  Repaint ();
}

のような感じで、Repaintを実行してみると良いようです。

UpdateOnGUIでもedit modeとplay modeで挙動が変わるそうなので、気を付けてください。

リンク

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

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

When is Update called in edit mode? – Unity Answers
https://answers.unity.com/questions/122074/when-is-update-called-in-edit-mode.html

UnityのInspectorで構造体使う方法

Unityではpublicもしくは[SerializeField]の変数をInspectorから設定することができます。このInspectorで独自に定義した構造体を使いたい場合は[System.Serializable]を使うと良いそうです。

[System.Serializable]
public struct Example
{
  public string name;
  piblic int value;
}

[SerializeField]
Example example;

リンク

C#で構造体をInspectorで使える様にする方法 – 強火で進め
http://d.hatena.ne.jp/nakamura001/20110805/1312563959