/// <summary> /// Plays a sound clip at a given source. /// </summary> /// <param name="source">Which player to use.</param> /// <param name="clip">Which clip to play.</param> protected virtual void PlaySound(DoubleAudioSource source, AudioClip clip) { if (!source.IsPlaying || source.Clip != clip) { source.CrossFadeToNewClip(clip); } }
protected virtual void PlaySoundRandomStart(DoubleAudioSource source, AudioClip clip) { if (!source.IsPlaying || source.Clip != clip) { float clipLength = clip.length; float startTime = Random.Range(0f, clipLength); source.CrossFadeToNewClip(clip, startTime: startTime); } }
private void OnMovement() { if (movementClip == null || _movementSource.IsPlaying) { return; } _movementSource.MixerGroup = mixerGroup; _movementSource.CrossFadeToNewClip(movementClip, fadeDuration: 0.1f); }
/// <summary> /// Starts playing the playlist. /// </summary> /// <param name="delay">Seconds of delaying the start of the next track.</param> /// <param name="fadeDuration">Seconds the fade will took.</param> public void Play(int delay = 0, float fadeDuration = 3f) { AudioClip clip = GetRandomClip(_audioSource.Clip); if (_audioSource.IsPlaying) { _audioSource.CrossFadeToNewClip(clip); } else { _audioSource.FadeIn(clip, duration: fadeDuration, delay: delay); } }
public void OnCollisionEnter(Collision other) { _collisionSource.MixerGroup = mixerGroup; _collisionSource.CrossFadeToNewClip(collisionClip, fadeDuration: 0.1f); }