private IEnumerator ReturnToPool(AudioSourceAnimator animator) { yield return(new WaitForSeconds(animator.Source.clip.length / animator.Source.pitch)); animator.Source.Stop(); Pool.Return(animator.Source); Animators.Remove(animator); }
private IEnumerator PlayClip(AudioClip clip, AudioSource audioSource, Vector3 position, float volume, float pitch) { audioSource.volume = volume; audioSource.transform.position = position; audioSource.pitch = pitch; audioSource.PlayOneShot(clip); yield return(new WaitForSeconds(clip.length)); Pool.Return(audioSource); }
private IEnumerator AudioSourceReturnCR(AudioSource source) { // yield return new WaitForSeconds(source.clip.length + audioSourceExtraTime); while (source.isPlaying) { yield return(null); } // if (source.isPlaying){ // Debug.LogError("AudioSourceReturnCR ERROR - audioSource is still playing! - source.time: " +source.time + ", source.clip: " + source.clip.length); // yield break; // } audioSourcePool.Return(source); }