public void PlayAndWait(float volume) { ISound sound = AudioClip.Play(volume); OnSoundStarted.Invoke(sound); EmittedSound emittedSound = new EmittedSound(sound); _playingSounds.TryAdd(emittedSound.ID, emittedSound); Task.Run(async() => await sound.Completed).Wait(); OnSoundCompleted.Invoke(sound); }
public ISound Play(float volume, bool shouldLoop = false) { ISound sound = AudioClip.Play(volume, shouldLoop); OnSoundStarted.Invoke(sound); EmittedSound emittedSound = new EmittedSound(sound); _playingSounds.TryAdd(emittedSound.ID, emittedSound); sound.Completed.ContinueWith(_ => OnSoundCompleted?.Invoke(sound)); return(sound); }
public void PlayAndWait(ISoundProperties properties = null) { ISound sound = AudioClip.Play(false, properties); OnSoundStarted.Invoke(sound); EmittedSound emittedSound = new EmittedSound(sound); _playingSounds.TryAdd(emittedSound.ID, emittedSound); Task.Run(async() => await sound.Completed).Wait(); OnSoundCompleted.Invoke(sound); }
public ISound Play(bool shouldLoop = false, ISoundProperties properties = null) { ISound sound = AudioClip.Play(shouldLoop, properties); OnSoundStarted.Invoke(sound); EmittedSound emittedSound = new EmittedSound(sound); _playingSounds.TryAdd(emittedSound.ID, emittedSound); sound.Completed.ContinueWith(_ => OnSoundCompleted?.Invoke(sound)); return(sound); }