using Stary.Evo.Editor; using UnityEditor; using UnityEngine; namespace Stary.Evo.RKTools { [CustomEditor(typeof(ARTrackedImageEvoObj))] public class ARTrackedImageEvoObjEditor : UnityEditor.Editor { /// /// 序列化属性,在OnEnable中获取 /// private SerializedProperty domain; private SerializedProperty trackedTransform; /// private string[] domainNames; private void OnEnable() { domain = serializedObject.FindProperty("domain"); trackedTransform = serializedObject.FindProperty("trackedTransform"); domainNames = CreatAssetWindow.GetCreatDomainAllName(); } public override void OnInspectorGUI() { serializedObject.Update(); // 获取当前选中的索引 int selectedIndex = System.Array.IndexOf(domainNames, domain.stringValue); if (selectedIndex < 0) selectedIndex = 0; // 默认选中第一个 // 绘制下拉选择框 selectedIndex = EditorGUILayout.Popup("Domain", selectedIndex, domainNames); // 更新选择的域名 domain.stringValue = domainNames[selectedIndex]; EditorGUI.BeginChangeCheck(); var newTrackedTransform = EditorGUILayout.ObjectField(new GUIContent("Tracked Transform"), trackedTransform.objectReferenceValue, typeof(Transform), true) as Transform; if (EditorGUI.EndChangeCheck()) { trackedTransform.objectReferenceValue = newTrackedTransform; } serializedObject.ApplyModifiedProperties(); base.OnInspectorGUI(); } } }