ON/OFFを設定する場合にトグルを表示したいとき、Toggleを使います。
Toggleとあるけど見た感じチェックボックスですよねえ…
EditorGUILayoutSample obj = target as EditorGUILayoutSample; obj.boolValue = EditorGUILayout.Toggle ("Toggle", obj.boolValue);
としてやると、
こんな感じに。
Toggleの戻りはboolで返ってきて、チェックがついていたらtrue。
よく見る、ラベルの左にチェックボックスが表示されるようにするのは、ToggleLeftを使い、
EditorGUILayoutSample obj = target as EditorGUILayoutSample; obj.boolValue = EditorGUILayout.ToggleLeft ("Toggle", obj.boolValue);
というふうにします。
こうなります。
チェックボックスをグループ化したいときは、BeginToggleGroupとEndToggleGroupで囲います。
EditorGUILayoutSample obj = target as EditorGUILayoutSample; obj.boolValue = EditorGUILayout.BeginToggleGroup ("Toggle Group", obj.boolValue); obj.boolGroupValues[0] = EditorGUILayout.Toggle ("bool 0", obj.boolGroupValues [0]); obj.boolGroupValues[1] = EditorGUILayout.Toggle ("bool 1", obj.boolGroupValues [1]); obj.boolGroupValues[2] = EditorGUILayout.Toggle ("bool 2", obj.boolGroupValues [2]); EditorGUILayout.EndToggleGroup ();
というふうに。
これで、
というように、3つのチェックボックスの上に統括するチェックボックスが出てきます。
一番上の「Toggle Group」のチェックを外すと、
というようにすべてのチェックボックスの操作ができなくなります。
ただし、obj.boolGroupValuesの値はそのままなので、プログラム内で値の扱いに気をつけるようにしないといけないです。