private void OnGUI() { if (soundData == null) { return; } EditorGUILayout.BeginVertical(); { UnityObject source = soundSource; EditorHelper.EditorToolTopLayer(soundData, ref selection, ref source, uiWidthMiddle); soundSource = (AudioClip)source; EditorGUILayout.BeginHorizontal(); { EditorHelper.EditorToolListLayer(ref SP1, soundData, ref selection, ref source, uiWidthMiddle); //SoundClip sound = soundData.soundClips[selection]; soundSource = (AudioClip)source; EditorGUILayout.BeginVertical(); { this.SP2 = EditorGUILayout.BeginScrollView(this.SP2); { if (soundData.GetDataCount() > 0) { EditorGUILayout.BeginVertical(); { EditorGUILayout.Separator(); SoundClip sound = soundData.soundClips[selection]; EditorGUILayout.LabelField("ID", selection.ToString(), GUILayout.Width(uiWidthLarge)); soundData.names[selection] = EditorGUILayout.TextField("Name", soundData.names[selection], GUILayout.Width(uiWidthLarge)); sound.playType = (SoundPlayType)EditorGUILayout.EnumPopup("PlayType", sound.playType, GUILayout.Width(uiWidthLarge)); sound.maxVolume = EditorGUILayout.FloatField("Max Volume", sound.maxVolume, GUILayout.Width(uiWidthLarge)); sound.isLoop = EditorGUILayout.Toggle("LoopClip", sound.isLoop, GUILayout.Width(uiWidthLarge)); EditorGUILayout.Separator(); if (this.soundSource == null && sound.soundName != string.Empty) { this.soundSource = Resources.Load(sound.soundPath + sound.soundName) as AudioClip; } this.soundSource = (AudioClip)EditorGUILayout.ObjectField("Audio Clip", this.soundSource, typeof(AudioClip), false, GUILayout.Width(uiWidthLarge)); if (soundSource != null) { sound.soundPath = EditorHelper.GetPath(soundSource); sound.soundName = soundSource.name; sound.pitch = EditorGUILayout.Slider("pitch", sound.pitch, -3.0f, 3.0f, GUILayout.Width(uiWidthLarge)); sound.dopplerLevel = EditorGUILayout.Slider("doppler", sound.dopplerLevel, 0.0f, 5.0f, GUILayout.Width(uiWidthLarge)); sound.rolloffMode = (AudioRolloffMode)EditorGUILayout.EnumPopup("volume Rolloff", sound.rolloffMode, GUILayout.Width(uiWidthLarge)); sound.minDistance = EditorGUILayout.FloatField("min Distance", sound.minDistance, GUILayout.Width(uiWidthLarge)); sound.maxDistance = EditorGUILayout.FloatField("max Distance", sound.maxDistance, GUILayout.Width(uiWidthLarge)); sound.spatialBlend = EditorGUILayout.Slider("PanLever", sound.spatialBlend, 0.0f, 1.0f, GUILayout.Width(uiWidthLarge)); } else { sound.soundName = string.Empty; sound.soundPath = string.Empty; } EditorGUILayout.Separator(); if (GUILayout.Button("Add Loop", GUILayout.Width(uiWidthMiddle))) { soundData.soundClips[selection].AddLoop(); } for (int i = 0; i < soundData.soundClips[selection].checkTime.Length; i++) { EditorGUILayout.BeginVertical("box"); { GUILayout.Label("Loop step " + i, EditorStyles.boldLabel); if (GUILayout.Button("Remove", GUILayout.Width(uiWidthMiddle))) { soundData.soundClips[selection].RemoveLoop(i); return; } sound.checkTime[i] = EditorGUILayout.FloatField("check Time", sound.checkTime[i], GUILayout.Width(uiWidthMiddle)); sound.setTime[i] = EditorGUILayout.FloatField("Set Time", sound.setTime[i], GUILayout.Width(uiWidthMiddle)); } EditorGUILayout.EndVertical(); } } EditorGUILayout.EndVertical(); } } EditorGUILayout.EndScrollView();//////////// } EditorGUILayout.EndVertical(); } EditorGUILayout.EndHorizontal(); } EditorGUILayout.EndVertical(); EditorGUILayout.Separator(); // EditorGUILayout.BeginHorizontal(); { if (GUILayout.Button("Reload")) { soundData = CreateInstance <SoundData>(); soundData.LoadData(); selection = 0; this.soundSource = null; } if (GUILayout.Button("Save")) { soundData.SaveData(); CreateEnumStructure(); AssetDatabase.Refresh(ImportAssetOptions.ForceUpdate); } } EditorGUILayout.EndHorizontal(); }