Files
FueraDeEscala/Assets/Game Kit Controller/Scripts/Editor/simpleSwitchEditor.cs

146 lines
4.8 KiB
C#
Raw Normal View History

using UnityEngine;
using System.Collections;
#if UNITY_EDITOR
using UnityEditor;
[CanEditMultipleObjects]
[CustomEditor (typeof(simpleSwitch))]
public class simpleSwitchEditor : Editor
{
SerializedProperty buttonEnabled;
SerializedProperty useSingleSwitch;
SerializedProperty buttonUsesAnimation;
SerializedProperty switchAnimationName;
SerializedProperty animationSpeed;
SerializedProperty notUsableWhileAnimationIsPlaying;
SerializedProperty pressSound;
SerializedProperty pressAudioElement;
SerializedProperty sendCurrentUser;
SerializedProperty useUnityEvents;
SerializedProperty objectToCallFunctions;
SerializedProperty switchTurnedOn;
SerializedProperty turnOnEvent;
SerializedProperty turnOffEvent;
SerializedProperty objectToActive;
SerializedProperty activeFunctionName;
SerializedProperty sendThisButton;
SerializedProperty audioSource;
SerializedProperty buttonAnimation;
SerializedProperty deviceStringActionManager;
simpleSwitch manager;
void OnEnable ()
{
buttonEnabled = serializedObject.FindProperty ("buttonEnabled");
useSingleSwitch = serializedObject.FindProperty ("useSingleSwitch");
buttonUsesAnimation = serializedObject.FindProperty ("buttonUsesAnimation");
switchAnimationName = serializedObject.FindProperty ("switchAnimationName");
animationSpeed = serializedObject.FindProperty ("animationSpeed");
notUsableWhileAnimationIsPlaying = serializedObject.FindProperty ("notUsableWhileAnimationIsPlaying");
pressSound = serializedObject.FindProperty ("pressSound");
pressAudioElement = serializedObject.FindProperty ("pressAudioElement");
sendCurrentUser = serializedObject.FindProperty ("sendCurrentUser");
useUnityEvents = serializedObject.FindProperty ("useUnityEvents");
objectToCallFunctions = serializedObject.FindProperty ("objectToCallFunctions");
switchTurnedOn = serializedObject.FindProperty ("switchTurnedOn");
turnOnEvent = serializedObject.FindProperty ("turnOnEvent");
turnOffEvent = serializedObject.FindProperty ("turnOffEvent");
objectToActive = serializedObject.FindProperty ("objectToActive");
activeFunctionName = serializedObject.FindProperty ("activeFunctionName");
sendThisButton = serializedObject.FindProperty ("sendThisButton");
audioSource = serializedObject.FindProperty ("audioSource");
buttonAnimation = serializedObject.FindProperty ("buttonAnimation");
deviceStringActionManager = serializedObject.FindProperty ("deviceStringActionManager");
manager = (simpleSwitch)target;
}
public override void OnInspectorGUI ()
{
EditorGUILayout.Space ();
GUILayout.BeginVertical (GUILayout.Height (30));
EditorGUILayout.Space ();
GUILayout.BeginVertical ("Main Settings", "window");
EditorGUILayout.PropertyField (buttonEnabled);
EditorGUILayout.PropertyField (useSingleSwitch);
GUILayout.EndVertical ();
EditorGUILayout.Space ();
GUILayout.BeginVertical ("Animation Settings", "window");
EditorGUILayout.PropertyField (buttonUsesAnimation);
if (buttonUsesAnimation.boolValue) {
EditorGUILayout.PropertyField (switchAnimationName);
EditorGUILayout.PropertyField (animationSpeed);
EditorGUILayout.PropertyField (notUsableWhileAnimationIsPlaying);
}
GUILayout.EndVertical ();
EditorGUILayout.Space ();
GUILayout.BeginVertical ("Sound Settings", "window");
EditorGUILayout.PropertyField (pressSound);
EditorGUILayout.PropertyField (pressAudioElement);
GUILayout.EndVertical ();
EditorGUILayout.Space ();
GUILayout.BeginVertical ("Events Settings", "window");
EditorGUILayout.PropertyField (sendCurrentUser);
EditorGUILayout.PropertyField (useUnityEvents);
if (useUnityEvents.boolValue) {
EditorGUILayout.Space ();
if (useSingleSwitch.boolValue) {
EditorGUILayout.PropertyField (objectToCallFunctions);
} else {
EditorGUILayout.PropertyField (switchTurnedOn);
EditorGUILayout.Space ();
EditorGUILayout.PropertyField (turnOnEvent);
EditorGUILayout.Space ();
EditorGUILayout.PropertyField (turnOffEvent);
}
} else {
EditorGUILayout.PropertyField (objectToActive);
EditorGUILayout.PropertyField (activeFunctionName);
EditorGUILayout.PropertyField (sendThisButton);
}
GUILayout.EndVertical ();
EditorGUILayout.Space ();
GUILayout.BeginVertical ("Components", "window");
EditorGUILayout.PropertyField (audioSource);
EditorGUILayout.PropertyField (buttonAnimation);
EditorGUILayout.PropertyField (deviceStringActionManager);
GUILayout.EndVertical ();
EditorGUILayout.Space ();
GUILayout.BeginVertical ("Debug Settings", "window");
if (GUILayout.Button ("Trigger Button Event")) {
if (Application.isPlaying) {
manager.triggerButtonEventFromEditor ();
}
}
GUILayout.EndVertical ();
EditorGUILayout.Space ();
GUILayout.EndVertical ();
if (GUI.changed) {
serializedObject.ApplyModifiedProperties ();
}
EditorGUILayout.Space ();
}
}
#endif