internal static void StopTravelerAudio(this TravelerAudioManager manager, TravelerController traveler) { var signalName = TravelerToSignalName(traveler); if (signalName == null) { return; } var signal = manager._signals.First(x => x.GetName() == signalName); signal.GetOWAudioSource().FadeOut(0.5f); }
internal static void PlayTravelerAudio(this TravelerAudioManager manager, TravelerController traveler, float audioDelay) { var signalName = TravelerToSignalName(traveler); if (signalName == null) { return; } var signal = manager._signals.First(x => x.GetName() == signalName); manager._playAfterDelay = false; manager._playAudioTime = Time.time + audioDelay; Delay.RunWhen(() => Time.time >= manager._playAudioTime, () => { if (!signal.IsOnlyAudibleToScope() || signal.GetOWAudioSource().isPlaying) { signal.GetOWAudioSource().FadeIn(0.5f); signal.GetOWAudioSource().timeSamples = 0; } }); }