namespace TurnTheGameOn.IKDriver { using UnityEngine; using UnityEditor; using System.Collections; [CustomEditor(typeof(IKD_VehicleInput))] public class Editor_IKD_VehicleInput : Editor { public override void OnInspectorGUI(){ IKD_VehicleInput vehicleInput = (IKD_VehicleInput)target; // inspector script reference GUI.enabled = false; EditorGUILayout.ObjectField("Script:", MonoScript.FromMonoBehaviour((IKD_VehicleInput)target), typeof(IKD_VehicleInput), false); GUI.enabled = true; #region UI EditorGUILayout.Space (); EditorGUILayout.LabelField ("UI", EditorStyles.centeredGreyMiniLabel); SerializedProperty mobileCanvas = serializedObject.FindProperty ("mobileCanvas"); EditorGUI.BeginChangeCheck (); EditorGUILayout.PropertyField (mobileCanvas, true); if (EditorGUI.EndChangeCheck ()) serializedObject.ApplyModifiedProperties (); SerializedProperty standardCanvas = serializedObject.FindProperty ("standardCanvas"); EditorGUI.BeginChangeCheck (); EditorGUILayout.PropertyField (standardCanvas, true); if (EditorGUI.EndChangeCheck ()) serializedObject.ApplyModifiedProperties (); SerializedProperty dashboardCanvas = serializedObject.FindProperty ("dashboardCanvas"); EditorGUI.BeginChangeCheck (); EditorGUILayout.PropertyField (dashboardCanvas, true); if (EditorGUI.EndChangeCheck ()) serializedObject.ApplyModifiedProperties (); SerializedProperty useStandardCanvas = serializedObject.FindProperty ("useStandardCanvas"); EditorGUI.BeginChangeCheck (); EditorGUILayout.PropertyField (useStandardCanvas, true); if (EditorGUI.EndChangeCheck ()) serializedObject.ApplyModifiedProperties (); #endregion #region Axes EditorGUILayout.Space (); EditorGUILayout.LabelField ("Axes", EditorStyles.centeredGreyMiniLabel); // steering axis SerializedProperty steeringAxis = serializedObject.FindProperty ("steeringAxis"); EditorGUI.BeginChangeCheck (); EditorGUILayout.PropertyField (steeringAxis, true); if (EditorGUI.EndChangeCheck ()) serializedObject.ApplyModifiedProperties (); // throttle axis SerializedProperty throttleAxis = serializedObject.FindProperty ("throttleAxis"); EditorGUI.BeginChangeCheck (); EditorGUILayout.PropertyField (throttleAxis, true); if (EditorGUI.EndChangeCheck ()) serializedObject.ApplyModifiedProperties (); #endregion #region keyboard input EditorGUILayout.Space (); EditorGUILayout.LabelField ("Keyboard", EditorStyles.centeredGreyMiniLabel); //bool SerializedProperty keyboardActive = serializedObject.FindProperty ("keyboardActive"); EditorGUI.BeginChangeCheck (); EditorGUILayout.PropertyField (keyboardActive, true); if (EditorGUI.EndChangeCheck ()) serializedObject.ApplyModifiedProperties (); //kelach SerializedProperty kelachkKey = serializedObject.FindProperty ("clutch"); EditorGUI.BeginChangeCheck (); EditorGUILayout.PropertyField (kelachkKey, true); if (EditorGUI.EndChangeCheck ()) serializedObject.ApplyModifiedProperties (); //keyboardActive SerializedProperty kebordTogle = serializedObject.FindProperty ("kebordTogle"); EditorGUI.BeginChangeCheck (); EditorGUILayout.PropertyField (kebordTogle, true); if (EditorGUI.EndChangeCheck ()) serializedObject.ApplyModifiedProperties (); // hand brake SerializedProperty handBrakeKey = serializedObject.FindProperty ("handBrakeKey"); EditorGUI.BeginChangeCheck (); EditorGUILayout.PropertyField (handBrakeKey, true); if (EditorGUI.EndChangeCheck ()) serializedObject.ApplyModifiedProperties (); // shift up SerializedProperty shiftUpKey = serializedObject.FindProperty ("shiftUpKey"); EditorGUI.BeginChangeCheck (); EditorGUILayout.PropertyField (shiftUpKey, true); if (EditorGUI.EndChangeCheck ()) serializedObject.ApplyModifiedProperties (); // shift down SerializedProperty shiftDownKey = serializedObject.FindProperty ("shiftDownKey"); EditorGUI.BeginChangeCheck (); EditorGUILayout.PropertyField (shiftDownKey, true); if (EditorGUI.EndChangeCheck ()) serializedObject.ApplyModifiedProperties (); // look back SerializedProperty lookBackKey = serializedObject.FindProperty ("lookBackKey"); EditorGUI.BeginChangeCheck (); EditorGUILayout.PropertyField (lookBackKey, true); if (EditorGUI.EndChangeCheck ()) serializedObject.ApplyModifiedProperties (); // camera switch SerializedProperty cameraSwitchKey = serializedObject.FindProperty ("cameraSwitchKey"); EditorGUI.BeginChangeCheck (); EditorGUILayout.PropertyField (cameraSwitchKey, true); if (EditorGUI.EndChangeCheck ()) // nitro serializedObject.ApplyModifiedProperties (); SerializedProperty nitroKey = serializedObject.FindProperty ("nitroKey"); EditorGUI.BeginChangeCheck (); EditorGUILayout.PropertyField (nitroKey, true); if (EditorGUI.EndChangeCheck ()) serializedObject.ApplyModifiedProperties (); #endregion #region joystick input EditorGUILayout.Space (); EditorGUILayout.LabelField ("Joystick", EditorStyles.centeredGreyMiniLabel); // hand brake joystick button SerializedProperty _handBrakeJoystick = serializedObject.FindProperty ("_handBrakeJoystick"); EditorGUI.BeginChangeCheck (); EditorGUILayout.PropertyField (_handBrakeJoystick, true); if (EditorGUI.EndChangeCheck ()) serializedObject.ApplyModifiedProperties (); switch (vehicleInput._handBrakeJoystick) { case Joystick.None: vehicleInput.handBrakeJoystick = KeyCode.None; break; case Joystick.JoystickButton0: vehicleInput.handBrakeJoystick = KeyCode.JoystickButton0; break; case Joystick.JoystickButton1: vehicleInput.handBrakeJoystick = KeyCode.JoystickButton1; break; case Joystick.JoystickButton2: vehicleInput.handBrakeJoystick = KeyCode.JoystickButton2; break; case Joystick.JoystickButton3: vehicleInput.handBrakeJoystick = KeyCode.JoystickButton3; break; case Joystick.JoystickButton4: vehicleInput.handBrakeJoystick = KeyCode.JoystickButton4; break; case Joystick.JoystickButton5: vehicleInput.handBrakeJoystick = KeyCode.JoystickButton5; break; case Joystick.JoystickButton6: vehicleInput.handBrakeJoystick = KeyCode.JoystickButton6; break; case Joystick.JoystickButton7: vehicleInput.handBrakeJoystick = KeyCode.JoystickButton7; break; case Joystick.JoystickButton8: vehicleInput.handBrakeJoystick = KeyCode.JoystickButton8; break; case Joystick.JoystickButton9: vehicleInput.handBrakeJoystick = KeyCode.JoystickButton9; break; case Joystick.JoystickButton10: vehicleInput.handBrakeJoystick = KeyCode.JoystickButton10; break; case Joystick.JoystickButton11: vehicleInput.handBrakeJoystick = KeyCode.JoystickButton11; break; case Joystick.JoystickButton12: vehicleInput.handBrakeJoystick = KeyCode.JoystickButton12; break; case Joystick.JoystickButton13: vehicleInput.handBrakeJoystick = KeyCode.JoystickButton13; break; case Joystick.JoystickButton14: vehicleInput.handBrakeJoystick = KeyCode.JoystickButton14; break; case Joystick.JoystickButton15: vehicleInput.handBrakeJoystick = KeyCode.JoystickButton15; break; case Joystick.JoystickButton16: vehicleInput.handBrakeJoystick = KeyCode.JoystickButton16; break; case Joystick.JoystickButton17: vehicleInput.handBrakeJoystick = KeyCode.JoystickButton17; break; case Joystick.JoystickButton18: vehicleInput.handBrakeJoystick = KeyCode.JoystickButton18; break; case Joystick.JoystickButton19: vehicleInput.handBrakeJoystick = KeyCode.JoystickButton19; break; } // nitro joystick button SerializedProperty _nitroJoystick = serializedObject.FindProperty ("_nitroJoystick"); EditorGUI.BeginChangeCheck (); EditorGUILayout.PropertyField (_nitroJoystick, true); if (EditorGUI.EndChangeCheck ()) serializedObject.ApplyModifiedProperties (); switch(vehicleInput._nitroJoystick){ case Joystick.None: vehicleInput.nitroJoystick = KeyCode.None; break; case Joystick.JoystickButton0: vehicleInput.nitroJoystick = KeyCode.JoystickButton0; break; case Joystick.JoystickButton1: vehicleInput.nitroJoystick = KeyCode.JoystickButton1; break; case Joystick.JoystickButton2: vehicleInput.nitroJoystick = KeyCode.JoystickButton2; break; case Joystick.JoystickButton3: vehicleInput.nitroJoystick = KeyCode.JoystickButton3; break; case Joystick.JoystickButton4: vehicleInput.nitroJoystick = KeyCode.JoystickButton4; break; case Joystick.JoystickButton5: vehicleInput.nitroJoystick = KeyCode.JoystickButton5; break; case Joystick.JoystickButton6: vehicleInput.nitroJoystick = KeyCode.JoystickButton6; break; case Joystick.JoystickButton7: vehicleInput.nitroJoystick = KeyCode.JoystickButton7; break; case Joystick.JoystickButton8: vehicleInput.nitroJoystick = KeyCode.JoystickButton8; break; case Joystick.JoystickButton9: vehicleInput.nitroJoystick = KeyCode.JoystickButton9; break; case Joystick.JoystickButton10: vehicleInput.nitroJoystick = KeyCode.JoystickButton10; break; case Joystick.JoystickButton11: vehicleInput.nitroJoystick = KeyCode.JoystickButton11; break; case Joystick.JoystickButton12: vehicleInput.nitroJoystick = KeyCode.JoystickButton12; break; case Joystick.JoystickButton13: vehicleInput.nitroJoystick = KeyCode.JoystickButton13; break; case Joystick.JoystickButton14: vehicleInput.nitroJoystick = KeyCode.JoystickButton14; break; case Joystick.JoystickButton15: vehicleInput.nitroJoystick = KeyCode.JoystickButton15; break; case Joystick.JoystickButton16: vehicleInput.nitroJoystick = KeyCode.JoystickButton16; break; case Joystick.JoystickButton17: vehicleInput.nitroJoystick = KeyCode.JoystickButton17; break; case Joystick.JoystickButton18: vehicleInput.nitroJoystick = KeyCode.JoystickButton18; break; case Joystick.JoystickButton19: vehicleInput.nitroJoystick = KeyCode.JoystickButton19; break; } // shift up joystick button SerializedProperty _shiftUpJoystick = serializedObject.FindProperty ("_shiftUpJoystick"); EditorGUI.BeginChangeCheck (); EditorGUILayout.PropertyField (_shiftUpJoystick, true); if (EditorGUI.EndChangeCheck ()) serializedObject.ApplyModifiedProperties (); switch(vehicleInput._shiftUpJoystick){ case Joystick.None: vehicleInput.shiftUpJoystick = KeyCode.None; break; case Joystick.JoystickButton0: vehicleInput.shiftUpJoystick = KeyCode.JoystickButton0; break; case Joystick.JoystickButton1: vehicleInput.shiftUpJoystick = KeyCode.JoystickButton1; break; case Joystick.JoystickButton2: vehicleInput.shiftUpJoystick = KeyCode.JoystickButton2; break; case Joystick.JoystickButton3: vehicleInput.shiftUpJoystick = KeyCode.JoystickButton3; break; case Joystick.JoystickButton4: vehicleInput.shiftUpJoystick = KeyCode.JoystickButton4; break; case Joystick.JoystickButton5: vehicleInput.shiftUpJoystick = KeyCode.JoystickButton5; break; case Joystick.JoystickButton6: vehicleInput.shiftUpJoystick = KeyCode.JoystickButton6; break; case Joystick.JoystickButton7: vehicleInput.shiftUpJoystick = KeyCode.JoystickButton7; break; case Joystick.JoystickButton8: vehicleInput.shiftUpJoystick = KeyCode.JoystickButton8; break; case Joystick.JoystickButton9: vehicleInput.shiftUpJoystick = KeyCode.JoystickButton9; break; case Joystick.JoystickButton10: vehicleInput.shiftUpJoystick = KeyCode.JoystickButton10; break; case Joystick.JoystickButton11: vehicleInput.shiftUpJoystick = KeyCode.JoystickButton11; break; case Joystick.JoystickButton12: vehicleInput.shiftUpJoystick = KeyCode.JoystickButton12; break; case Joystick.JoystickButton13: vehicleInput.shiftUpJoystick = KeyCode.JoystickButton13; break; case Joystick.JoystickButton14: vehicleInput.shiftUpJoystick = KeyCode.JoystickButton14; break; case Joystick.JoystickButton15: vehicleInput.shiftUpJoystick = KeyCode.JoystickButton15; break; case Joystick.JoystickButton16: vehicleInput.shiftUpJoystick = KeyCode.JoystickButton16; break; case Joystick.JoystickButton17: vehicleInput.shiftUpJoystick = KeyCode.JoystickButton17; break; case Joystick.JoystickButton18: vehicleInput.shiftUpJoystick = KeyCode.JoystickButton18; break; case Joystick.JoystickButton19: vehicleInput.shiftUpJoystick = KeyCode.JoystickButton19; break; } // shift down joystick button SerializedProperty _shiftDownJoystick = serializedObject.FindProperty ("_shiftDownJoystick"); EditorGUI.BeginChangeCheck (); EditorGUILayout.PropertyField (_shiftDownJoystick, true); if (EditorGUI.EndChangeCheck ()) serializedObject.ApplyModifiedProperties (); switch(vehicleInput._shiftDownJoystick){ case Joystick.None: vehicleInput.shiftDownJoystick = KeyCode.None; break; case Joystick.JoystickButton0: vehicleInput.shiftDownJoystick = KeyCode.JoystickButton0; break; case Joystick.JoystickButton1: vehicleInput.shiftDownJoystick = KeyCode.JoystickButton1; break; case Joystick.JoystickButton2: vehicleInput.shiftDownJoystick = KeyCode.JoystickButton2; break; case Joystick.JoystickButton3: vehicleInput.shiftDownJoystick = KeyCode.JoystickButton3; break; case Joystick.JoystickButton4: vehicleInput.shiftDownJoystick = KeyCode.JoystickButton4; break; case Joystick.JoystickButton5: vehicleInput.shiftDownJoystick = KeyCode.JoystickButton5; break; case Joystick.JoystickButton6: vehicleInput.shiftDownJoystick = KeyCode.JoystickButton6; break; case Joystick.JoystickButton7: vehicleInput.shiftDownJoystick = KeyCode.JoystickButton7; break; case Joystick.JoystickButton8: vehicleInput.shiftDownJoystick = KeyCode.JoystickButton8; break; case Joystick.JoystickButton9: vehicleInput.shiftDownJoystick = KeyCode.JoystickButton9; break; case Joystick.JoystickButton10: vehicleInput.shiftDownJoystick = KeyCode.JoystickButton10; break; case Joystick.JoystickButton11: vehicleInput.shiftDownJoystick = KeyCode.JoystickButton11; break; case Joystick.JoystickButton12: vehicleInput.shiftDownJoystick = KeyCode.JoystickButton12; break; case Joystick.JoystickButton13: vehicleInput.shiftDownJoystick = KeyCode.JoystickButton13; break; case Joystick.JoystickButton14: vehicleInput.shiftDownJoystick = KeyCode.JoystickButton14; break; case Joystick.JoystickButton15: vehicleInput.shiftDownJoystick = KeyCode.JoystickButton15; break; case Joystick.JoystickButton16: vehicleInput.shiftDownJoystick = KeyCode.JoystickButton16; break; case Joystick.JoystickButton17: vehicleInput.shiftDownJoystick = KeyCode.JoystickButton17; break; case Joystick.JoystickButton18: vehicleInput.shiftDownJoystick = KeyCode.JoystickButton18; break; case Joystick.JoystickButton19: vehicleInput.shiftDownJoystick = KeyCode.JoystickButton19; break; } // look back joystick button SerializedProperty _lookBackJoystick = serializedObject.FindProperty ("_lookBackJoystick"); EditorGUI.BeginChangeCheck (); EditorGUILayout.PropertyField (_lookBackJoystick, true); if (EditorGUI.EndChangeCheck ()) serializedObject.ApplyModifiedProperties (); switch(vehicleInput._lookBackJoystick){ case Joystick.None: vehicleInput.lookBackJoystick = KeyCode.None; break; case Joystick.JoystickButton0: vehicleInput.lookBackJoystick = KeyCode.JoystickButton0; break; case Joystick.JoystickButton1: vehicleInput.lookBackJoystick = KeyCode.JoystickButton1; break; case Joystick.JoystickButton2: vehicleInput.lookBackJoystick = KeyCode.JoystickButton2; break; case Joystick.JoystickButton3: vehicleInput.lookBackJoystick = KeyCode.JoystickButton3; break; case Joystick.JoystickButton4: vehicleInput.lookBackJoystick = KeyCode.JoystickButton4; break; case Joystick.JoystickButton5: vehicleInput.lookBackJoystick = KeyCode.JoystickButton5; break; case Joystick.JoystickButton6: vehicleInput.lookBackJoystick = KeyCode.JoystickButton6; break; case Joystick.JoystickButton7: vehicleInput.lookBackJoystick = KeyCode.JoystickButton7; break; case Joystick.JoystickButton8: vehicleInput.lookBackJoystick = KeyCode.JoystickButton8; break; case Joystick.JoystickButton9: vehicleInput.lookBackJoystick = KeyCode.JoystickButton9; break; case Joystick.JoystickButton10: vehicleInput.lookBackJoystick = KeyCode.JoystickButton10; break; case Joystick.JoystickButton11: vehicleInput.lookBackJoystick = KeyCode.JoystickButton11; break; case Joystick.JoystickButton12: vehicleInput.lookBackJoystick = KeyCode.JoystickButton12; break; case Joystick.JoystickButton13: vehicleInput.lookBackJoystick = KeyCode.JoystickButton13; break; case Joystick.JoystickButton14: vehicleInput.lookBackJoystick = KeyCode.JoystickButton14; break; case Joystick.JoystickButton15: vehicleInput.lookBackJoystick = KeyCode.JoystickButton15; break; case Joystick.JoystickButton16: vehicleInput.lookBackJoystick = KeyCode.JoystickButton16; break; case Joystick.JoystickButton17: vehicleInput.lookBackJoystick = KeyCode.JoystickButton17; break; case Joystick.JoystickButton18: vehicleInput.lookBackJoystick = KeyCode.JoystickButton18; break; case Joystick.JoystickButton19: vehicleInput.lookBackJoystick = KeyCode.JoystickButton19; break; } // camera switch joystick button SerializedProperty _cameraSwitchJoystick = serializedObject.FindProperty ("_cameraSwitchJoystick"); EditorGUI.BeginChangeCheck (); EditorGUILayout.PropertyField (_cameraSwitchJoystick, true); if (EditorGUI.EndChangeCheck ()) serializedObject.ApplyModifiedProperties (); switch(vehicleInput._cameraSwitchJoystick){ case Joystick.None: vehicleInput.cameraSwitchJoystick = KeyCode.None; break; case Joystick.JoystickButton0: vehicleInput.cameraSwitchJoystick = KeyCode.JoystickButton0; break; case Joystick.JoystickButton1: vehicleInput.cameraSwitchJoystick = KeyCode.JoystickButton1; break; case Joystick.JoystickButton2: vehicleInput.cameraSwitchJoystick = KeyCode.JoystickButton2; break; case Joystick.JoystickButton3: vehicleInput.cameraSwitchJoystick = KeyCode.JoystickButton3; break; case Joystick.JoystickButton4: vehicleInput.cameraSwitchJoystick = KeyCode.JoystickButton4; break; case Joystick.JoystickButton5: vehicleInput.cameraSwitchJoystick = KeyCode.JoystickButton5; break; case Joystick.JoystickButton6: vehicleInput.cameraSwitchJoystick = KeyCode.JoystickButton6; break; case Joystick.JoystickButton7: vehicleInput.cameraSwitchJoystick = KeyCode.JoystickButton7; break; case Joystick.JoystickButton8: vehicleInput.cameraSwitchJoystick = KeyCode.JoystickButton8; break; case Joystick.JoystickButton9: vehicleInput.cameraSwitchJoystick = KeyCode.JoystickButton9; break; case Joystick.JoystickButton10: vehicleInput.cameraSwitchJoystick = KeyCode.JoystickButton10; break; case Joystick.JoystickButton11: vehicleInput.cameraSwitchJoystick = KeyCode.JoystickButton11; break; case Joystick.JoystickButton12: vehicleInput.cameraSwitchJoystick = KeyCode.JoystickButton12; break; case Joystick.JoystickButton13: vehicleInput.cameraSwitchJoystick = KeyCode.JoystickButton13; break; case Joystick.JoystickButton14: vehicleInput.cameraSwitchJoystick = KeyCode.JoystickButton14; break; case Joystick.JoystickButton15: vehicleInput.cameraSwitchJoystick = KeyCode.JoystickButton15; break; case Joystick.JoystickButton16: vehicleInput.cameraSwitchJoystick = KeyCode.JoystickButton16; break; case Joystick.JoystickButton17: vehicleInput.cameraSwitchJoystick = KeyCode.JoystickButton17; break; case Joystick.JoystickButton18: vehicleInput.cameraSwitchJoystick = KeyCode.JoystickButton18; break; case Joystick.JoystickButton19: vehicleInput.cameraSwitchJoystick = KeyCode.JoystickButton19; break; } EditorUtility.SetDirty (vehicleInput); #endregion #region mobile input EditorGUILayout.Space (); EditorGUILayout.LabelField ("Mobile", EditorStyles.centeredGreyMiniLabel); SerializedProperty mobileController = serializedObject.FindProperty ("mobileController"); EditorGUI.BeginChangeCheck (); EditorGUILayout.PropertyField (mobileController, true); if (EditorGUI.EndChangeCheck ()) serializedObject.ApplyModifiedProperties (); SerializedProperty mobileSteeringType = serializedObject.FindProperty ("mobileSteeringType"); EditorGUI.BeginChangeCheck (); EditorGUILayout.PropertyField (mobileSteeringType, true); if (EditorGUI.EndChangeCheck ()) serializedObject.ApplyModifiedProperties (); if (vehicleInput.mobileController) { TurnTheGameOn.IKDriver.IKD_StaticUtility.m_IKD_UtilitySettings.useMobileController = true; } else { TurnTheGameOn.IKDriver.IKD_StaticUtility.m_IKD_UtilitySettings.useMobileController = false; } // nitro on SerializedProperty nitroON = serializedObject.FindProperty ("nitroON"); EditorGUI.BeginChangeCheck (); EditorGUILayout.PropertyField (nitroON, true); if (EditorGUI.EndChangeCheck ()) serializedObject.ApplyModifiedProperties (); // nitro off SerializedProperty nitroOFF = serializedObject.FindProperty ("nitroOFF"); EditorGUI.BeginChangeCheck (); EditorGUILayout.PropertyField (nitroOFF, true); if (EditorGUI.EndChangeCheck ()) serializedObject.ApplyModifiedProperties (); // shift up SerializedProperty shiftUp = serializedObject.FindProperty ("shiftUp"); EditorGUI.BeginChangeCheck (); EditorGUILayout.PropertyField (shiftUp, true); if (EditorGUI.EndChangeCheck ()) serializedObject.ApplyModifiedProperties (); // shift down SerializedProperty shiftDown = serializedObject.FindProperty ("shiftDown"); EditorGUI.BeginChangeCheck (); EditorGUILayout.PropertyField (shiftDown, true); if (EditorGUI.EndChangeCheck ()) serializedObject.ApplyModifiedProperties (); #endregion } } }