private void DrawSoundDatabaseDropZone(SoundDatabase soundDatabase) { GUILayout.Label(GUIContent.none, GUILayout.ExpandWidth(true), GUILayout.Height(0)); Rect lastRect = GUILayoutUtility.GetLastRect(); var dropRect = new Rect(lastRect.x + DGUI.Properties.Space(), lastRect.y - 2, DGUI.Properties.DefaultFieldWidth * 5, DGUI.Properties.SingleLineHeight); //calculate rect bool containsMouse = dropRect.Contains(Event.current.mousePosition); if (containsMouse) { DGUI.Colors.SetNormalGUIColorAlpha(); switch (Event.current.type) { case EventType.DragUpdated: bool containsAudioClip = DragAndDrop.objectReferences.OfType <AudioClip>().Any(); DragAndDrop.visualMode = containsAudioClip ? DragAndDropVisualMode.Copy : DragAndDropVisualMode.Rejected; Event.current.Use(); Repaint(); break; case EventType.DragPerform: IEnumerable <AudioClip> audioClips = DragAndDrop.objectReferences.OfType <AudioClip>(); bool undoRecorded = false; foreach (AudioClip audioClip in audioClips) { if (!undoRecorded) { DoozyUtils.UndoRecordObject(soundDatabase, UILabels.AddSounds); undoRecorded = true; } SoundGroupData soundGroupData = soundDatabase.Add(audioClip.name, false, false); soundGroupData.Sounds.Add(new AudioData(audioClip)); soundGroupData.SetDirty(false); soundDatabase.SetDirty(false); m_needsSave = true; } Event.current.Use(); Repaint(); break; } } DGUI.Doozy.DrawDropZone(dropRect, containsMouse); GUILayout.Space(dropRect.width); }
public static Player GetPlayer(SoundGroupData soundGroupData, AudioMixerGroup audioMixerGroup = null) { if (soundGroupData == null) { return(null); } if (PlayerAudioDataDatabase.ContainsKey(soundGroupData)) { if (audioMixerGroup != null) { PlayerAudioDataDatabase[soundGroupData].UpdateAudioMixerGroup(audioMixerGroup); } return(PlayerAudioDataDatabase[soundGroupData]); } var player = new Player(soundGroupData, audioMixerGroup); PlayerAudioDataDatabase.Add(soundGroupData, player); return(player); }
public Player(SoundGroupData soundGroupData, AudioMixerGroup outputAudioMixerGroup) { m_soundGroupData = soundGroupData; m_outputAudioMixerGroup = outputAudioMixerGroup; m_soundSource = SoundSource.Soundy; }