エディタ内部の団結がエディタエディタは文字通り意味するものと理解、特徴、そして、我々はエンジンツールの団結を使用することがより便利に使用することができます。
公式文書ます。https://docs.unity3d.com/ScriptReference/Editor.html
1.最初のステップ、2つのプロパティ[健康/攻撃]がある新しい統一プロジェクトを作成し、スクリプトの名前MyActorを作成し、以下のようにコードは次のとおりです。
2.ビジュアルエディタを作るための鍵であるエディタのフォルダを、構築するためのプロジェクトにおける第2のステップと、
3.第3のステップは、このクラスのニーズがエディタクラスを継承することに注意することが重要、エディタコンポーネントのクラスに直接記述することです、そして私はそれCatEditor.csの名前、およびエディタのフォルダに、コードは次の通りされています。
4.最後に、我々は直接バックちょうどオブジェクトインスペクタ(インスペクター)に、プロジェクトを実行する必要はありません、私たちは、このコンポーネントのクラス可視化MyActor.csを指示できることがわかります
MyActor.cs
使用
にSystem.Collectionsを。
使用して
System.Collections.Genericを。
元
UnityEngine;
パブリック
クラス
MyActor
:
MonoBehaviour
{
公共
int型
健康= 100;
//健康
公共
int型
攻撃10 =;
//攻撃
}
MyActorInspector.cs
使用して
UnityEditorを。
元
UnityEngine;
[
CustomEditor
(
typeof演算
(
MyActor
))]
パブリック
クラス
MyActorInspector
:
エディタ
{
公共
int型
HealthProp。
公共
int型の
AttackProp。
空
OnEnable()
{
MyActor
myActor =目標
として
MyActor
。
HealthProp = myActor.Health。
AttackProp = myActor.Attack。
}
公共
オーバーライド
無効
OnInspectorGUI()
{
= HealthProp
EditorGUILayout
.IntSlider(
"健康"
、HealthProp、0、100);
プログレス((HealthProp / 100.0f)、
"人生の価値"
);
= AttackProp
EditorGUILayout
.IntSlider(
"攻撃"
、AttackProp、0、50);
プログレス((AttackProp / 100.0f)、
"攻撃"
)。
}
プライベート
無効
プログレス(
フロート
値、
文字列
ラベル)
{
//のRectを定義します
RECT
RECT =
GUILayoutUtility
.GetRect(18、18、
"テキストフィールド"
)。
//プログレスバーを作成します。
EditorGUI
.ProgressBar(RECT、値、ラベル);
//空白行を追加します。
EditorGUILayout
.SPACE()。
}
}