63 lines
1.6 KiB
C#
63 lines
1.6 KiB
C#
using UnityEditor;
|
|
|
|
namespace Passer {
|
|
|
|
[CustomEditor(typeof(CollisionEventHandler))]
|
|
public class CollisionEventHandler_Editor : Editor {
|
|
protected CollisionEventHandler eventHandler;
|
|
|
|
#region Enable
|
|
protected virtual void OnEnable() {
|
|
eventHandler = (CollisionEventHandler)target;
|
|
|
|
InitEvents();
|
|
}
|
|
#endregion
|
|
|
|
#region Disable
|
|
protected virtual void OnDisable() {
|
|
CleanupEvents();
|
|
}
|
|
#endregion
|
|
|
|
#region Inspector
|
|
public override void OnInspectorGUI() {
|
|
serializedObject.Update();
|
|
|
|
EventsInspector();
|
|
|
|
serializedObject.ApplyModifiedProperties();
|
|
}
|
|
|
|
#region Events
|
|
|
|
protected GameObjectEventHandlers[] eventLists;
|
|
protected SerializedProperty[] eventListProps;
|
|
protected SerializedProperty collisionEventProp;
|
|
|
|
protected void InitEvents() {
|
|
eventLists = new GameObjectEventHandlers[] {
|
|
eventHandler.collisionHandlers,
|
|
};
|
|
|
|
collisionEventProp = serializedObject.FindProperty("collisionHandlers");
|
|
}
|
|
|
|
protected int selectedEvent = -1;
|
|
protected int selectedSub = -1;
|
|
|
|
protected void EventsInspector() {
|
|
GameObjectEvent_Editor.EventInspector(collisionEventProp, eventHandler.collisionHandlers, ref selectedEvent, ref selectedSub);
|
|
}
|
|
|
|
protected void CleanupEvents() {
|
|
foreach (GameObjectEventHandlers eventList in eventLists)
|
|
GameObjectEvent_Editor.Cleanup(eventList);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#endregion
|
|
}
|
|
|
|
} |