An easy to use Unity 3D library for creating illustrated Interactive Fiction games and more.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

55 lines
2.2 KiB

// This code is part of the Fungus library (http://fungusgames.com) maintained by Chris Gregan (http://twitter.com/gofungus).
// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE)
using UnityEditor;
using UnityEngine;
using Rotorz.ReorderableList;
namespace Fungus.EditorUtils
{
[CustomEditor (typeof(WriterAudio))]
public class WriterAudioEditor : Editor
{
protected SerializedProperty volumeProp;
protected SerializedProperty loopProp;
protected SerializedProperty targetAudioSourceProp;
protected SerializedProperty audioModeProp;
protected SerializedProperty beepSoundsProp;
protected SerializedProperty soundEffectProp;
protected SerializedProperty inputSoundProp;
protected virtual void OnEnable()
{
volumeProp = serializedObject.FindProperty("volume");
loopProp = serializedObject.FindProperty("loop");
targetAudioSourceProp = serializedObject.FindProperty("targetAudioSource");
inputSoundProp = serializedObject.FindProperty("inputSound");
audioModeProp = serializedObject.FindProperty("audioMode");
beepSoundsProp = serializedObject.FindProperty("beepSounds");
soundEffectProp = serializedObject.FindProperty("soundEffect");
}
public override void OnInspectorGUI()
{
serializedObject.Update();
EditorGUILayout.PropertyField(volumeProp);
EditorGUILayout.PropertyField(loopProp);
EditorGUILayout.PropertyField(targetAudioSourceProp);
EditorGUILayout.PropertyField(inputSoundProp);
EditorGUILayout.PropertyField(audioModeProp);
if ((WriterAudio.AudioMode)audioModeProp.enumValueIndex == WriterAudio.AudioMode.Beeps)
{
ReorderableListGUI.Title(new GUIContent("Beep Sounds", "A list of beep sounds to play at random"));
ReorderableListGUI.ListField(beepSoundsProp);
}
else
{
EditorGUILayout.PropertyField(soundEffectProp);
}
serializedObject.ApplyModifiedProperties();
}
}
}