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

Gentoo LinuxでC#を使ってみた

Gentoo LinuxのMonoでC#を使ってみたので、使い方をメモしてみます。

インストール

# emerge -av mono

プログラミング

$ vi hello.cs
$ cat hello.cs
using System;
public class Hello
{
  static public void Main ()
  {
    Console.WriteLine("Hello world!");
  }
}

コンパイル&実行

$ mcs hello.cs
$ ls
hello.cs  hello.exe*
$ mono hello.exe
Hello world!

リンク

Home | Mono
http://www.mono-project.com/