[Unityエディター拡張] 数値の入力

ヨメレバCSS
オリジナルCSS

int、long、float、doubleをそれぞれ入力するためのフィールドです。

直接入力するだけでなくスライダーなどもあります。

int型の入力をする

まず、普通に入力するのはIntFieldを使用します。

EditorGUILayoutSample obj = target as EditorGUILayoutSample;
obj.intValue = EditorGUILayout.IntField ("intValue", obj.intValue);

これで、

2_3_intfield

こうなります。

このフィールドには数字以外は入力できず、小数点も駄目です。

ポップアップでの選択

int型を入力するときに、IntPopupを使うとポップアップリストになります。

EditorGUILayoutSample obj = target as EditorGUILayoutSample;
obj.intValue = EditorGUILayout.IntPopup (obj.intValue, new string[]{"one", "two", "three"}, new int[]{1, 2, 3});

というので、

2_3_intpopup

という。

個人的にはポップアップというより、プルダウンとかドロップダウンリストとかいうほうがしっくりくるのですが、Wikipediaさんによると昔はポップアップと呼んでいたこともあるよう

ひとまずPopupというメソッド名なので、それに倣っていきます。

スライダーでの入力

IntSliderを使うと、スライダーで入力できます。

どういうことかというと、

EditorGUILayoutSample obj = target as EditorGUILayoutSample;
int leftValue = 1;
int rightValue = 10;
obj.intValue = EditorGUILayout.IntSlider (obj.intValue, leftValue, rightValue);

とすることで、

2_3_intslider

という、leftValueとrightValueの間で調整できるスライダー形式のフィールドができます。

long型の入力をする

long型の値を入力するにはLongFieldを使用します。

EditorGUILayoutSample obj = target as EditorGUILayoutSample;
obj.longValue = EditorGUILayout.LongField ("longValue", obj.longValue);

からの、

2_3_longfield

こう。

これも数字以外、小数点も入力できません。

float型の入力をする

float型を入力するにはFloatFieldを使います。

EditorGUILayoutSample obj = target as EditorGUILayoutSample;
obj.floatValue = EditorGUILayout.FloatField ("floatValue", obj.floatValue);

として、

2_3_floatfield

こう。

スライダーでの入力

floatにもスライダーがあり、Sliderを使うとそれが指定できます。

EditorGUILayoutSample obj = target as EditorGUILayoutSample;
float leftValue = 1.0f;
float rightValue = 10.0f;
obj.floatValue = EditorGUILayout.Slider (obj.floatValue, leftValue, rightValue);

から、

2_3_slider

という感じで。見た目は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);

とすると、

2_3_minmaxslider

というような、最大と最小を指定するスライダーができます。

このメソッドはminValueとmaxValueをrefで取っており、直接値が変わってしまうので注意が必要。

double型の入力をする

double型の入力はDoubleField。

EditorGUILayoutSample obj = target as EditorGUILayoutSample;
obj.doubleValue = EditorGUILayout.DoubleField ("doubleValue", obj.doubleValue);

として、

2_3_doublefield

こう。

これも見た目変わらないですね。

int, long, float, doubleのフィールドは、それぞれの型の限界値、小数が入力できるかどうかで決めていく感じになります。

スライダーやポップアップがintとfloatにしかないのは、たぶんlongやdoubleまで必要なものは大抵そんなことしないってことですかね。

スポンサーリンク
GoogleAdSence レクタングル(大)