實(shí)現(xiàn)效果


using UnityEngine;
using UnityEditor;
[CustomEditor(typeof(BtoolDemo))]//關(guān)聯(lián)之前的腳本
public classBtoolDemoEditor : Editor
{
??? private SerializedObject test;//序列化
? ? private SerializedProperty m_type, a_int,b_int;//定義類型m_type,變量a,變量b
??? void OnEnable()
??? {
??????? test = new SerializedObject(target);
??????? //獲取m_type
??????? m_type =test.FindProperty("m_type");
??????? //獲取a_int
??????? a_int =test.FindProperty("a_int");
??????? //獲取b_int
??????? b_int =test.FindProperty("b_int");
??? }
??? public override void OnInspectorGUI()
??? {
??????? //更新test
??????? test.Update();
??????? //顯示m_type
??????? EditorGUILayout.PropertyField(m_type);
??????? //根據(jù)類型顯示不同內(nèi)容
??????? if (m_type.enumValueIndex == 0)
??????? {
???????????EditorGUILayout.PropertyField(a_int);
??????? }
??????? else if (m_type.enumValueIndex == 1)
??????? {
???????????EditorGUILayout.PropertyField(b_int);
??????? }
??????? test.ApplyModifiedProperties();//應(yīng)用于界面
??? }
}
using UnityEngine;
public class BtoolDemo : MonoBehaviour {
? public enum type1
??? {
??????? a,
??????? b
??? }
??? public type1 m_type;
??? public int a_int;
??? public int b_int;