int、long、float、doubleをそれぞれ入力するためのフィールドです。
直接入力するだけでなくスライダーなどもあります。
目次
int型の入力をする
まず、普通に入力するのはIntFieldを使用します。
EditorGUILayoutSample obj = target as EditorGUILayoutSample; obj.intValue = EditorGUILayout.IntField ("intValue", obj.intValue);
これで、
こうなります。
このフィールドには数字以外は入力できず、小数点も駄目です。
ポップアップでの選択
int型を入力するときに、IntPopupを使うとポップアップリストになります。
EditorGUILayoutSample obj = target as EditorGUILayoutSample; obj.intValue = EditorGUILayout.IntPopup (obj.intValue, new string[]{"one", "two", "three"}, new int[]{1, 2, 3});
というので、
という。
個人的にはポップアップというより、プルダウンとかドロップダウンリストとかいうほうがしっくりくるのですが、Wikipediaさんによると昔はポップアップと呼んでいたこともあるよう。
ひとまずPopupというメソッド名なので、それに倣っていきます。
スライダーでの入力
IntSliderを使うと、スライダーで入力できます。
どういうことかというと、
EditorGUILayoutSample obj = target as EditorGUILayoutSample; int leftValue = 1; int rightValue = 10; obj.intValue = EditorGUILayout.IntSlider (obj.intValue, leftValue, rightValue);
とすることで、
という、leftValueとrightValueの間で調整できるスライダー形式のフィールドができます。
long型の入力をする
long型の値を入力するにはLongFieldを使用します。
EditorGUILayoutSample obj = target as EditorGUILayoutSample; obj.longValue = EditorGUILayout.LongField ("longValue", obj.longValue);
からの、
こう。
これも数字以外、小数点も入力できません。
float型の入力をする
float型を入力するにはFloatFieldを使います。
EditorGUILayoutSample obj = target as EditorGUILayoutSample; obj.floatValue = EditorGUILayout.FloatField ("floatValue", obj.floatValue);
として、
こう。
スライダーでの入力
floatにもスライダーがあり、Sliderを使うとそれが指定できます。
EditorGUILayoutSample obj = target as EditorGUILayoutSample; float leftValue = 1.0f; float rightValue = 10.0f; obj.floatValue = EditorGUILayout.Slider (obj.floatValue, leftValue, rightValue);
から、
という感じで。見た目はIntSliderと変わらないですね。
最大と最小の値を指定する
もうひとつfloatであるのが、MinMaxSliderを使って最大と最小を指定するフィールド。
EditorGUILayoutSample obj = target as EditorGUILayoutSample; float minLimit = 1.0f; float maxLimit = 10.0f; EditorGUILayout.MinMaxSlider (ref obj.minValue, ref obj.maxValue, minLimit, maxLimit);
とすると、
というような、最大と最小を指定するスライダーができます。
このメソッドはminValueとmaxValueをrefで取っており、直接値が変わってしまうので注意が必要。
double型の入力をする
double型の入力はDoubleField。
EditorGUILayoutSample obj = target as EditorGUILayoutSample; obj.doubleValue = EditorGUILayout.DoubleField ("doubleValue", obj.doubleValue);
として、
こう。
これも見た目変わらないですね。
int, long, float, doubleのフィールドは、それぞれの型の限界値、小数が入力できるかどうかで決めていく感じになります。
スライダーやポップアップがintとfloatにしかないのは、たぶんlongやdoubleまで必要なものは大抵そんなことしないってことですかね。