using UnityEditor; using UnityEditorInternal; using UnityEngine; using UnityEngine.UI; using UnityEngine.Events; using System; using System.Collections; using System.Collections.Generic; using Rotorz.ReorderableList; namespace Fungus { [CustomEditor (typeof(ControlAudio))] public class ControlAudioEditor : CommandEditor { protected SerializedProperty controlProp; protected SerializedProperty audioSourceProp; protected SerializedProperty startVolumeProp; protected SerializedProperty endVolumeProp; protected SerializedProperty fadeDurationProp; protected SerializedProperty waitUntilFinishedProp; protected virtual void OnEnable() { controlProp = serializedObject.FindProperty("control"); audioSourceProp = serializedObject.FindProperty("audioSource"); startVolumeProp = serializedObject.FindProperty("startVolume"); endVolumeProp = serializedObject.FindProperty("endVolume"); fadeDurationProp = serializedObject.FindProperty("fadeDuration"); waitUntilFinishedProp = serializedObject.FindProperty("waitUntilFinished"); } public override void DrawCommandGUI() { serializedObject.Update(); ControlAudio t = target as ControlAudio; EditorGUILayout.PropertyField(controlProp); EditorGUILayout.PropertyField(audioSourceProp); string fadeLabel = "Fade Out Duration"; if (t.control != ControlAudio.controlType.StopLoop && t.control != ControlAudio.controlType.PauseLoop) { fadeLabel = "Fade In Duration"; string volumeLabel = "End Volume"; if (t.control == ControlAudio.controlType.ChangeVolume) { fadeLabel = "Fade Duration"; volumeLabel = "New Volume"; } EditorGUILayout.PropertyField(endVolumeProp,new GUIContent(volumeLabel)); } EditorGUILayout.PropertyField(fadeDurationProp,new GUIContent(fadeLabel)); EditorGUILayout.PropertyField(waitUntilFinishedProp); serializedObject.ApplyModifiedProperties(); } } }