private void FixedUpdate() { if (locked) { return; } if (clips.Length == 0) { return; } if (!CachedRigidbody) { return; } if (AlsoOnAngularSlow && CachedRigidbody.angularVelocity.magnitude < .1f && angularVelocity.magnitude > .1f) { CachedAudioSource.PlayOneShot(clips[Random.Range(0, clips.Length)], (angularVelocity.magnitude - CachedRigidbody.angularVelocity.magnitude) * .5f); } if (AlsoOnSlow && velocity.magnitude > .1 && CachedRigidbody.velocity.magnitude < .1) { CachedAudioSource.PlayOneShot(clips[Random.Range(0, clips.Length)], (velocity.magnitude - CachedRigidbody.velocity.magnitude)); } angularVelocity = CachedRigidbody.angularVelocity; velocity = CachedRigidbody.velocity; }
/// <summary> /// /// </summary> /// <param name="audioToCache"></param> private void AudioSourceFinished(CachedAudioSource audioToCache) { audioToCache.audioSource.transform.parent = transform; audioToCache.audioSource.gameObject.SetActive(false); _inactiveAudioSources.Add(audioToCache); }
/// <summary> /// /// </summary> /// <param name="index"></param> /// <param name="ignorePause"></param> private void PlayAudioCue(int index, bool ignorePause) { if (audioCues[index].clips.Length == 0) { return; } CachedAudioSource source = GetAudioSource(index); source.audioSource.clip = audioCues[index].clips[Random.Range(0, audioCues[index].clips.Length)]; source.audioSource.pitch = Random.Range(audioCues[index].pitch.minimum, audioCues[index].pitch.maximum); source.audioSource.volume = Random.Range(audioCues[index].volume.minimum, audioCues[index].volume.maximum); source.audioSource.ignoreListenerPause = ignorePause; // We only assign a group if a custom AudioSource is not present. if (!audioCues[index].UsesCustomAudioSource()) { if (audioCues[index].UsesCustomAudioGroup()) { source.audioSource.outputAudioMixerGroup = audioCues[index].group; } } source.audioSource.gameObject.SetActive(true); source.audioSource.transform.parent = transform; source.audioSource.Play(); _activeAudioSources.Add(source); }
private void EndTransfer() { Whinch.SetSoundState(false); CachedAudioSource.PlayOneShot(ArrivalSound); CurrentFloor = TargetFloor; TryOpenDoors(); }
public void Stop(float fadeTime = 0f) { StopAllCoroutines(); if (fadeTime > 0) { SetVolumeTo(0f, fadeTime, delegate() { CachedAudioSource.Stop(); CachedAudioSource.clip = null; }); } else { CachedAudioSource.Stop(); CachedAudioSource.clip = null; } isPlaying = false; StopEvent(this); //TODO get recycling of sounds working Destroy(gameObject); //ObjectPool.Recycle(gameObject); }
public void Play(Sound sound, float fadeTime = 0f) { StopAllCoroutines(); CachedAudioSource.Stop(); CurrentSound = sound; Volume = fadeTime == 0f ? VolumeFromSettings : 0f; CachedAudioSource.clip = sound.audioClip; CachedAudioSource.loop = sound.loop; CachedAudioSource.pitch = Random.Range(sound.minPitch, sound.maxPitch); CachedAudioSource.spatialBlend = sound.spatialBlend; CachedAudioSource.volume = sound.volume; CachedAudioSource.loop = sound.loop; CachedAudioSource.Play(); //TODO dont relly on this CachedAudioSource.spatialBlend = 0; if (fadeTime > 0f) { SetVolumeTo(VolumeFromSettings, fadeTime); } isPlaying = true; PlayEvent(this); }
/// <summary> /// Plays sound effect when shell collides with objects. /// </summary> protected override void OnCollisionEnter (Collision col) { base.OnCollisionEnter (col); if (CachedAudioSource != null && _collisionSound != null) { CachedAudioSource.PlayOneShot (_collisionSound); } }
private void OnCollisionEnter(Collision collision) { if (locked) { return; } if (clips.Length > 0) { CachedAudioSource.PlayOneShot(clips[Random.Range(0, clips.Length)], collision.relativeVelocity.magnitude * .5f); } }
public void Update() { for (int i = 0; i < _activeAudioSources.Count; i++) { CachedAudioSource activeSource = _activeAudioSources[i]; if (!activeSource.audioSource.isPlaying) { AudioSourceFinished(activeSource); _activeAudioSources.RemoveAt(i--); } } }
protected override void OnUpdate() { base.OnUpdate(); if (Input.GetKeyDown(_captureKey)) { // Application.CaptureScreenshot(OutputCaptureFileTitle); if (CachedAudioSource != null && _captureSound != null) { CachedAudioSource.PlayOneShot(_captureSound); } _index++; Debug.Log("Frame Captured, saved as " + Application.dataPath + OutputCaptureFileTitle); } }
/// <summary> /// /// </summary> /// <param name="index"></param> /// <returns></returns> private CachedAudioSource GetAudioSource(int index) { if (audioCues[index].UsesCustomAudioSource()) { for (int i = 0; i < _inactiveAudioSources.Count; i++) { if (index == _inactiveAudioSources[i].customId) { CachedAudioSource source = _inactiveAudioSources[i]; _inactiveAudioSources.RemoveAt(i); return(source); } } CachedAudioSource customSource = new CachedAudioSource(); customSource.customId = index; customSource.audioSource = Instantiate(audioCues[index].source); customSource.audioSource.gameObject.name = "audio_source_" + (_activeAudioSources.Count + _inactiveAudioSources.Count + 1); return(customSource); } if (_inactiveAudioSources.Count > 0) { CachedAudioSource source = _inactiveAudioSources[_inactiveAudioSources.Count - 1]; _inactiveAudioSources.RemoveAt(_inactiveAudioSources.Count - 1); return(source); } CachedAudioSource newSource = new CachedAudioSource(); newSource.audioSource = new GameObject("audio_source_" + (_activeAudioSources.Count + _inactiveAudioSources.Count + 1)).AddComponent <AudioSource>(); newSource.audioSource.playOnAwake = false; return(newSource); }