SamsonGame/Assets/Sources/Feel/MMTools/Tools/MMAudio/MMSoundManager/Events/MMSoundManagerSoundControlE...

49 lines
1.7 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace MoreMountains.Tools
{
public enum MMSoundManagerSoundControlEventTypes
{
Pause,
Resume,
Stop,
Free
}
/// <summary>
/// An event used to control a specific sound on the MMSoundManager.
/// You can either search for it by ID, or directly pass an audiosource if you have it.
///
/// Example : MMSoundManagerSoundControlEvent.Trigger(MMSoundManagerSoundControlEventTypes.Stop, 33);
/// will cause the sound(s) with an ID of 33 to stop playing
/// </summary>
public struct MMSoundManagerSoundControlEvent
{
/// the ID of the sound to control (has to match the one used to play it)
public int SoundID;
/// the control mode
public MMSoundManagerSoundControlEventTypes MMSoundManagerSoundControlEventType;
/// the audiosource to control (if specified)
public AudioSource TargetSource;
public MMSoundManagerSoundControlEvent(MMSoundManagerSoundControlEventTypes eventType, int soundID, AudioSource source = null)
{
SoundID = soundID;
TargetSource = source;
MMSoundManagerSoundControlEventType = eventType;
}
static MMSoundManagerSoundControlEvent e;
public static void Trigger(MMSoundManagerSoundControlEventTypes eventType, int soundID, AudioSource source = null)
{
e.SoundID = soundID;
e.TargetSource = source;
e.MMSoundManagerSoundControlEventType = eventType;
MMEventManager.TriggerEvent(e);
}
}
}