89 lines
3.2 KiB
C#
89 lines
3.2 KiB
C#
using UnityEditor;
|
|
|
|
namespace Passer {
|
|
|
|
[CustomEditor(typeof(MouseInput))]
|
|
public class MouseInput_Editor : Editor {
|
|
protected MouseInput mouseInput;
|
|
|
|
protected string[] mouseLabelList = new string[] {
|
|
"Mouse Vertical",
|
|
"Mouse Horizontal",
|
|
"Mouse Scroll",
|
|
"Left Button",
|
|
"Middle button",
|
|
"Right Button",
|
|
};
|
|
|
|
#region Enable
|
|
|
|
protected void OnEnable() {
|
|
mouseInput = (MouseInput)target;
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Disable
|
|
|
|
protected virtual void OnDisable() {
|
|
ControllerEventHandlers.Cleanup(mouseInput.mouseInputEvents);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Inspector
|
|
|
|
protected int selectedMouse = -1;
|
|
protected int selectedSub = -1;
|
|
|
|
public override void OnInspectorGUI() {
|
|
serializedObject.Update();
|
|
|
|
LeftHandedMouseInspector();
|
|
LeftButtonIsTrigger1Inspector();
|
|
MiddleButtonIsButton1Inspector();
|
|
RightButtonIsTrigger2Inspector();
|
|
EventsInspector();
|
|
|
|
serializedObject.ApplyModifiedProperties();
|
|
}
|
|
|
|
protected void LeftHandedMouseInspector() {
|
|
SerializedProperty mouseInputSideProp = serializedObject.FindProperty(nameof(MouseInput.side));
|
|
bool isLeft = EditorGUILayout.Toggle("Left Handed Mouse", mouseInput.isLeft);
|
|
if (isLeft)
|
|
mouseInputSideProp.intValue = (int)Side.Left;
|
|
else
|
|
mouseInputSideProp.intValue = (int)Side.Right;
|
|
}
|
|
|
|
protected void LeftButtonIsTrigger1Inspector() {
|
|
SerializedProperty leftButtonIsTrigger1Prop = serializedObject.FindProperty(nameof(MouseInput.leftButtonIsTrigger1));
|
|
leftButtonIsTrigger1Prop.boolValue = EditorGUILayout.Toggle("Left Button = Trigger 1", leftButtonIsTrigger1Prop.boolValue);
|
|
}
|
|
|
|
protected void MiddleButtonIsButton1Inspector() {
|
|
SerializedProperty middleButtonIsButton1Prop = serializedObject.FindProperty(nameof(MouseInput.middleButtonIsButton1));
|
|
middleButtonIsButton1Prop.boolValue = EditorGUILayout.Toggle("Middle Button = Button 1", middleButtonIsButton1Prop.boolValue);
|
|
}
|
|
|
|
protected void RightButtonIsTrigger2Inspector() {
|
|
SerializedProperty rightButtonIsTrigger2Prop = serializedObject.FindProperty(nameof(MouseInput.rightButtonIsTrigger2));
|
|
rightButtonIsTrigger2Prop.boolValue = EditorGUILayout.Toggle("Right Button = Trigger 2", rightButtonIsTrigger2Prop.boolValue);
|
|
}
|
|
|
|
protected void EventsInspector() {
|
|
SerializedProperty mouseEventsProp = serializedObject.FindProperty("mouseInputEvents");
|
|
for (int i = 0; i < mouseEventsProp.arraySize; i++) {
|
|
if (i == 3 && mouseInput.leftButtonIsTrigger1)
|
|
continue;
|
|
if (i == 5 && mouseInput.rightButtonIsTrigger2)
|
|
continue;
|
|
|
|
ControllerEvent_Editor.EventInspector(mouseEventsProp.GetArrayElementAtIndex(i), ref selectedMouse, ref selectedSub);
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
} |