private void PlaySound(SoundResource sound) { // Adjust the sound back to normal settings if it is a looping sound that is already playing if ((currentPlayHandle != null) && currentPlayHandle.IsPlaying() && Looping) { AdjustSound(Loudness, PitchOffset); return; } StopSound(false); PlaySettings playSettings = (Looping ? PlaySettings.Looped : PlaySettings.PlayOnce); playSettings.DontSync = false; playSettings.Loudness = LoudnessPercentToDb(Loudness + LoudnessVariance * RandomNegOneToOne()); playSettings.PitchShift = PitchOffset + PitchVariance * RandomNegOneToOne(); if (Spatialized) { if (audio != null) { currentPlayHandle = audio.PlaySoundOnComponent(sound, playSettings); } else { currentPlayHandle = ScenePrivate.PlaySoundAtPosition(sound, ObjectPrivate.Position, playSettings); } } else { currentPlayHandle = ScenePrivate.PlaySound(sound, playSettings); } }
private void PlaySound(SoundResource sound) { PlaySettings playSettings = PlaySettings.PlayOnce; playSettings.Loudness = LoudnessPercentToDb(Loudness); playSettings.PitchShift = PitchVariance * RandomNegOneToOne(); audio.PlaySoundOnComponent(sound, playSettings); }
public override void Init() { AudioComponent audioComp = null; ObjectPrivate.TryGetFirstComponent(out audioComp); if (audioComp != null) { PlaySettings playSettings = Play_Once ? PlaySettings.PlayOnce : PlaySettings.Looped; playSettings.Loudness = RelativePercentToRelativeLoudnessDB(Volume_Diff_Percent); playSettings.DontSync = Dont_Sync; audioComp.PlaySoundOnComponent(Sound, playSettings); } }
private void PlayNextSound() { SoundResource nextSound = AvailableSounds[NextSoundIndex]; if (LocalAudioComponent != null) { LocalAudioComponent.PlaySoundOnComponent(nextSound, PlaySettings.PlayOnce).OnFinished(OnSoundFinished); } else { ScenePrivate.PlaySound(nextSound, PlaySettings.PlayOnce).OnFinished(OnSoundFinished); } }
private void StartSound(AnimationData obj) { StopSound(obj); if (playHandle == null) { if (audioComp == null) { playHandle = ScenePrivate.PlaySound(Sound, playSettings); } else { playHandle = audioComp.PlaySoundOnComponent(Sound, playSettings); } } }
public override void Init() { // Check to make sure a sound has been configured in the editor if (LoopingSound == null) { Log.Write("LoopingSoundComponentScript has no configured sound to play!"); return; } if (!ObjectPrivate.TryGetFirstComponent(out _audio)) { Log.Write("LoopingSoundComponentScript is on an object that does not have an audio emitter."); return; } ObjectPrivate.AddInteractionData addData = (ObjectPrivate.AddInteractionData)WaitFor(ObjectPrivate.AddInteraction, "Play sound", true); addData.Interaction.Subscribe((InteractionData data) => { // If not sound is playing, start one up if (_playHandle == null) { PlaySettings playSettings = PlaySettings.Looped; playSettings.Loudness = (60.0f * (Loudness / 100.0f)) - 48.0f; // Convert percentage to decibels (dB) _playHandle = _audio.PlaySoundOnComponent(LoopingSound, playSettings); } // Else if a sound is playing, stop it else { if (_playHandle.IsPlaying()) { _playHandle.Stop(); } _playHandle = null; } }); }