using UnityEngine; using UnityEditor; [CustomEditor(typeof(NearbyRoomsChanger))] public class NearbyRoomsChangerEditor : Editor { public override void OnInspectorGUI() { serializedObject.Update(); NearbyRoomsChanger changer = (NearbyRoomsChanger)target; EditorGUILayout.PropertyField(serializedObject.FindProperty("targetRoomTrigger")); if (changer.targetRoomTrigger != null) { RoomTrigger rt = changer.targetRoomTrigger; if (rt.nearbyRoomCategories != null && rt.nearbyRoomCategories.Count > 0) { string[] categoryNames = new string[rt.nearbyRoomCategories.Count]; for (int i = 0; i < rt.nearbyRoomCategories.Count; i++) { categoryNames[i] = rt.nearbyRoomCategories[i].categoryName; } changer.selectedCategoryIndex = EditorGUILayout.Popup("Category", changer.selectedCategoryIndex, categoryNames); if (GUILayout.Button("Set Selected Category")) { changer.SetSelectedCategory(); } } else { EditorGUILayout.HelpBox("Target RoomTrigger has no categories.", MessageType.Warning); } } else { EditorGUILayout.HelpBox("Assign a Target RoomTrigger to select a category.", MessageType.Info); } serializedObject.ApplyModifiedProperties(); } }