Unityで値を触りやすいデータを作ろう -拡張編2-
こんにちは。東谷太喜です。
前回の -拡長編- の続きとなりますので、前回の記事を元に書いていきます。
前回は4.まで進み、ゴールスコアを表示するところまで書きました。
5.変数名表示の変更
ここで何の値かを明確にするため、変数名を日本語表示に変更します。
変更の仕方は簡単です。
19行目、EditorGUILayout.PropertyField(serialized)に第2引数を追加するだけで出来ます。
なので、
EditorGUILayout.PropertyField(serialized, new GUIContent(“表示したい名前”));
のように変更します。
「GUIContent」は、インスペクター上の表示名などを変えるものだと思ってください。
私は、”表示したい名前” を “目標スコア” にしておきます。
6.表示変更用の関数の作成
他の変数に、同様の処理を行う際にコピペよりは関数を作成したほうが増やすのが圧倒的に楽になります。
public void 関数名(string 引数名1, string 引数名2) { }
を関数で新しく書きます。
関数名、引数1,2は自由にして大丈夫です。
4. と 5. で書いた2行の処理を移動させ、処理を一部書き換えます。
var serialized = serializedObject.FindProperty(引数名1);
EditorGUILayout.PropertyField(serialized, new GUIContent(引数名2));
に変更しておきます。
引数名1,2は、関数の引数名に合わせて変更してください。
あとは「OnInspectorGUI」内に作成した関数を書いていきます。
関数名(引数1,引数2);
引数1に「拡張したいクラスに存在し、対象にする変数名」
引数2に「インスペクターに表示される文字」を書きます。
最後に、「LogError」を書いて、表示させる変数分書けば完成です。
これで変数名表記から日本語に変更できました。
おまけ
「GUIContent」には2つの引数があります。
この機能を使えばGUIContentのアイコンを変えることができます。
面白いので是非見やすいように色々と試してみてください。
今回はここまでにします。
次回は、値エラーを回避する拡長編3をして書いていきいます。
インターンシップへの申し込み・お問い合わせ先
