using System.Collections; using System.Collections.Generic; using UnityEngine; namespace MoreMountains.Tools { /// /// A class used to pilot a MMPlaylist /// [AddComponentMenu("More Mountains/Tools/Audio/MMPlaylistRemote")] public class MMPlaylistRemote : MonoBehaviour { public int Channel = 0; /// The track to play when calling PlaySelectedTrack public int TrackNumber = 0; [Header("Triggers")] /// if this is true, the selected track will be played on trigger enter (if you have a trigger collider on this) public bool PlaySelectedTrackOnTriggerEnter = true; /// if this is true, the selected track will be played on trigger exit (if you have a trigger collider on this) public bool PlaySelectedTrackOnTriggerExit = false; /// the tag to check for on trigger stuff public string TriggerTag = "Player"; [Header("Test")] /// a play test button [MMInspectorButton("Play")] public bool PlayButton; /// a pause test button [MMInspectorButton("Pause")] public bool PauseButton; /// a stop test button [MMInspectorButton("Stop")] public bool StopButton; /// a next track test button [MMInspectorButton("PlayNextTrack")] public bool NextButton; /// a selected track test button [MMInspectorButton("PlaySelectedTrack")] public bool SelectedTrackButton; /// /// Plays the playlist /// public virtual void Play() { MMPlaylistPlayEvent.Trigger(Channel); } /// /// Pauses the current track /// public virtual void Pause() { MMPlaylistPauseEvent.Trigger(Channel); } /// /// Stops the playlist /// public virtual void Stop() { MMPlaylistStopEvent.Trigger(Channel); } /// /// Plays the next track in the playlist /// public virtual void PlayNextTrack() { MMPlaylistPlayNextEvent.Trigger(Channel); } /// /// Plays the track selected in the inspector /// public virtual void PlaySelectedTrack() { MMPlaylistPlayIndexEvent.Trigger(Channel, TrackNumber); } /// /// Plays the track set in parameters /// public virtual void PlayTrack(int trackIndex) { MMPlaylistPlayIndexEvent.Trigger(Channel, trackIndex); } /// /// On trigger enter, we play the selected track if needed /// /// protected virtual void OnTriggerEnter(Collider collider) { if (PlaySelectedTrackOnTriggerEnter && (collider.CompareTag(TriggerTag))) { PlaySelectedTrack(); } } /// /// On trigger exit, we play the selected track if needed /// protected virtual void OnTriggerExit(Collider collider) { if (PlaySelectedTrackOnTriggerExit && (collider.CompareTag(TriggerTag))) { PlaySelectedTrack(); } } /// /// On trigger enter 2D, we play the selected track if needed /// /// protected virtual void OnTriggerEnter2D(Collider2D collider) { if (PlaySelectedTrackOnTriggerEnter && (collider.CompareTag(TriggerTag))) { PlaySelectedTrack(); } } /// /// On trigger exit 2D, we play the selected track if needed /// protected virtual void OnTriggerExit2D(Collider2D collider) { if (PlaySelectedTrackOnTriggerExit && (collider.CompareTag(TriggerTag))) { PlaySelectedTrack(); } } } }