public void Load(AudioDataBase audioDataBase) { id = audioDataBase.ID; desc = audioDataBase.DESCRIPTION; path = audioDataBase.RES_PATH; volume = audioDataBase.VOLUME; }
void OnGUI() { GUILayout.Label("DataBase File", EditorStyles.boldLabel); audioDataBase = (AudioDataBase)EditorGUILayout.ObjectField("DataBase", audioDataBase, typeof(AudioDataBase)); if (audioDataBase == null) { if (GUILayout.Button("Create DataBase File")) { audioDataBase = AudioDataBase.CreateAssest(); } return; } GUILayout.Label("Create Data", EditorStyles.boldLabel); createKeyName = EditorGUILayout.TextField("Key Name", createKeyName); createVolumeRate = EditorGUILayout.FloatField("Volume Rate", createVolumeRate); createClip = (AudioClip)EditorGUILayout.ObjectField("Clip", createClip, typeof(AudioClip)); createAudioType = (AudioType)EditorGUILayout.EnumPopup("Audio Type", createAudioType); createIsLoop = EditorGUILayout.Toggle("Is Loop", createIsLoop); EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("Reset Data")) { ResetCreateInfo(); } if (GUILayout.Button("Create Data")) { if (createKeyName.Length == 0) { EditorUtility.DisplayDialog("Create Data", "KeyName is Empty", "ok"); return; } if (createClip == null) { EditorUtility.DisplayDialog("Create Data", "Clip is Empty", "ok"); return; } if (audioDataBase.AddData(createKeyName, new AudioClipInfo(createClip, createVolumeRate, createAudioType, createIsLoop))) { EditorUtility.DisplayDialog("Create Data", "Success", "ok"); EditorUtility.SetDirty(audioDataBase); AssetDatabase.SaveAssets(); ResetCreateInfo(); } else { EditorUtility.DisplayDialog("Create Data", "Fail", "ok"); } } EditorGUILayout.EndHorizontal(); EditorGUILayout.Space(); EditorGUILayout.Separator(); GUILayout.Label("DataBase List", EditorStyles.boldLabel); GUI.color = Color.green; searchString = EditorGUILayout.TextField("Search Key", searchString); GUI.color = Color.white; EditorGUILayout.Space(); scrollPosition = GUILayout.BeginScrollView(scrollPosition, true, true); for (int i = 0; i < audioDataBase.AudioDataInfoList.Count; i++) { AudioDataInfo audioDataInfo = audioDataBase.AudioDataInfoList[i]; if (searchString.Length == 0 || audioDataInfo.Key.IndexOf(searchString) >= 0) { EditorGUI.BeginDisabledGroup(true); AudioClipInfo audioClipInfo = audioDataInfo.AudioClipInfo; GUI.color = Color.magenta; EditorGUILayout.TextField("Key Name", audioDataInfo.Key); GUI.color = Color.white; EditorGUILayout.FloatField("Volume Rate", audioClipInfo.VolumeRate); EditorGUILayout.ObjectField("Clip", audioClipInfo.Clip, typeof(AudioClip)); EditorGUILayout.EnumPopup("Audio Type", audioClipInfo.Type); EditorGUILayout.Toggle("Is Loop", audioClipInfo.IsLoop); EditorGUI.EndDisabledGroup(); EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("Play")) { //_audioDataBase.RemoveData(audioDataInfo.Key); if (!IsClipPlaying(audioClipInfo.Clip)) { PlayClip(audioClipInfo.Clip); } } if (GUILayout.Button("Stop")) { //_audioDataBase.RemoveData(audioDataInfo.Key); StopClip(audioClipInfo.Clip); } GUI.color = Color.red; if (GUILayout.Button("Delete")) { audioDataBase.RemoveData(audioDataInfo.Key); } GUI.color = Color.white; EditorGUILayout.EndHorizontal(); EditorGUILayout.Space(); EditorGUILayout.Space(); } } GUILayout.EndScrollView(); }
// Use this for initialization void Start() { database = this; }