效果如下:
源碼如下:
1 using System.Collections.Generic; 2 using UnityEditor; 3 using UnityEngine; 4 5 namespace XM.Editor 6 { 7 public class AssetBundleCreator : EditorWindow 8 { 9 [MenuItem("Tools/Build Asset Bundle")] 10 public static void BuildAssetBundle() 11 { 12 var win = GetWindow<AssetBundleCreator>("Build Asset Bundle"); 13 win.Show(); 14 } 15 16 [SerializeField]//必須要加 17 protected List<UnityEngine.Object> _assetLst = new List<UnityEngine.Object>(); 18 19 //序列化對象 20 protected SerializedObject _serializedObject; 21 22 //序列化屬性 23 protected SerializedProperty _assetLstProperty; 24 25 26 protected void OnEnable() 27 { 28 //使用當前類初始化 29 _serializedObject = new SerializedObject(this); 30 //獲取當前類中可序列話的屬性 31 _assetLstProperty = _serializedObject.FindProperty("_assetLst"); 32 } 33 34 protected void OnGUI() 35 { 36 //更新 37 _serializedObject.Update(); 38 39 //開始檢查是否有修改 40 EditorGUI.BeginChangeCheck(); 41 42 //顯示屬性 43 //第二個參數必須為true,否則無法顯示子節點即List內容 44 EditorGUILayout.PropertyField(_assetLstProperty, true); 45 46 //結束檢查是否有修改 47 if (EditorGUI.EndChangeCheck()) 48 {//提交修改 49 _serializedObject.ApplyModifiedProperties(); 50 } 51 } 52 } 53 }
上述原文地址http://blog.csdn.net/u012741077/article/details/54884623
------------------------------------修改-------------------------------------------------
需要在你修改面板的腳本里面定義變量(目前只實驗成功了List),並要序列化,然后在對應的編輯器文件里面序列化這個腳本
1 SerializedObject serializedObject = new UnityEditor.SerializedObject(itemCollider); 2 SerializedProperty serializedPropertyMyInt = serializedObject.FindProperty("HideObjForOnEnable"); 3 if (itemCollider.IsOnEnableHideObj = EditorGUILayout.Toggle(new GUIContent("Is On Disable Hide Obj", "是否添加激活隱藏物體事件"), itemCollider.IsOnEnableHideObj)) 4 { 5 //開始檢查是否有修改 6 EditorGUI.BeginChangeCheck(); 7 8 //顯示屬性 9 //第二個參數必須為true,否則無法顯示子節點即List內容 10 EditorGUILayout.PropertyField(serializedPropertyMyInt, new GUIContent("Hide Obj For On Disable", "隱藏物體"), true); 11 12 //結束檢查是否有修改 13 if (EditorGUI.EndChangeCheck()) 14 {//提交修改 15 serializedObject.ApplyModifiedProperties(); 16 }
效果如下:
經實驗,直接寫在OnInspectorGUI()方法內也是沒問題的