ObjectFieldの作成(Editor拡張)
EditorGUILayout.ObjectFieldやEditorGUI.ObjectFieldはGUIStyleを設定できないため、これらのコントロールは見た目の変更ができません。そこで、GUIStyleを自由に変更できるObjectFieldを作成しました。 Script 作成したscriptは以下の通りです。 ボタンなし ボタンがない場合のオブジェクトフィールドのScriptです。 […]
Unityによるゲーム制作のあれこれ
EditorGUILayout.ObjectFieldやEditorGUI.ObjectFieldはGUIStyleを設定できないため、これらのコントロールは見た目の変更ができません。そこで、GUIStyleを自由に変更できるObjectFieldを作成しました。 Script 作成したscriptは以下の通りです。 ボタンなし ボタンがない場合のオブジェクトフィールドのScriptです。 […]
以前作成したポップアップウィンドウ(ポップアップウィンドウの作成)に検索機能を追加しました。 Script ポップアップウィンドウ 作成したScriptは以下の通りです。 検索を行うためのキーワードを入力するためのTextFieldを追加しています。EditorGUI.BeginChangeCheck()により、TextFieldの内容が変更された時のみ検索が実行されるようにしています。 始め […]
コントロールの作成 プロパティの表示に必要なデータの取得で取得したプロパティのタイプ(prop_type)を用いて、プロパティのタイプによって作成するコントロールを変更します。 Colorプロパティ colorプロパティに作用するAttributeはありません。そのため、以下に示すように色を選択するコントロールの作成のみを行っています。 Vectorプロパティ Vectorプロパティもcol […]
Inspectorに表示されるようなMaterialのShaderプロパティをEditorWindowで表示するScriptを作成しました。基本的なAttributeにも対応しています。 ※コントロールの作成部分は次の記事、「MaterialのShaderプロパティーを表示 その2(Editor拡張)」に記述しています。 Script 作成したScriptは以下の通りです。 プロパティの表示に […]
作成したGUIコントロールを一つのクラスへまとめたScriptです。詳しくはFloatFieldの作成 その2(Editor拡張)、ラジオボタンの作成(Editor拡張)、Sliderの作成(Editor拡張)、FloatFieldの作成(Editor拡張)で説明しています。 Script 作成したGUIコントロールは以下の通りです。 これらのGUIコントロールを実行するScriptは以下の通 […]
以前にFloatFieldを作成した際(FloatFieldの作成)、横幅の計算にEditorWindow.positionを用いていました。しかし、スクロールバーが表示された場合、EditorWindow.positionはウィンドウの幅をであるためFloatFieldがスクロールバーで隠れてしまいます。そこで、横幅の計算をGUILayoutUtility.GetRectへ変更し、さらにPre […]
Editor拡張でポップアップウィンドウ作成する方法です。 その1 PopupWindowContentを継承したクラスを作成し、これをPopupWindow.Showでポップアップウィンドウとして開きます。 Script 下記Scriptでは、表示されたボタンを押すとポップアップウィンドウが開きます。このポップアップウィンドウ内に前回作成したラジオボタンを表示し、選択したボタンのインデック […]
EditorWindowでラジオボタンを作成する方法です。 GUILayout.SelectionGridを用いて作成 GUILayout.SelectionGridは選択したボタンのインデックスを返します。動作としてはラジオボタンと同じですが、実行すると このように、複数のボタンが並んだ状態で表示されます。このGUILayout.SelectionGridに、EditorStyle.radi […]
GUIStyleを自由に変更できるようSliderを自作しました。 Label、Slider、FloatFieldを横並びで表示 EditorGUILayout.Sliderによって作成されるコントロール(Label、Slider、FloatField)を別々に作成し、これらを横へ並べることでSliderを作成ます。これにより、各要素へ自由にGUIStyleを設定することができるようになります […]
EditorGUILayout.FloatFieldで作成したFloatFieldのラベルの色を変更しようとGUIStyleを変更したところ、テキスト入力部分のスタイルしか変更できませんでした。そこで、FloatFieldを自作することで、自由にラベルの色等を変更できるようにしました。 LabelFieldとFloatFieldを横並びで表示 FloatFieldを作成すると、ラベル部分(La […]