public static void RemoveVirtualAudioListener(VirtualMultiAudioListener virtualAudioListener) { _virtualAudioListeners.Remove(virtualAudioListener); if (OnVirtualAudioListenerRemoved != null) { OnVirtualAudioListenerRemoved(virtualAudioListener); } }
private void VirtualAudioListenerRemoved(VirtualMultiAudioListener virtualAudioListener) { var audioSource = _subAudioSources[virtualAudioListener]; _subAudioSources.Remove(virtualAudioListener); if (audioSource != null) { MainMultiAudioListener.EnquequeAudioSourceInPool(audioSource); } }
public static void AddVirtualAudioListener(VirtualMultiAudioListener virtualAudioListener) { if (_virtualAudioListeners.Contains(virtualAudioListener)) { return; } _virtualAudioListeners.Add(virtualAudioListener); if (OnVirtualAudioListenerAdded != null) { OnVirtualAudioListenerAdded(virtualAudioListener); } }
private void MoveSubAudioSourceToNeededLocation(VirtualMultiAudioListener virtualListener, AudioSource subAudioSource) { //There is no main listener so translation is not needed if (MainMultiAudioListener.Main == null) { return; } //We calculate and translate the local pos of the audio from the virtual listener to the main listener var localPos = virtualListener.transform.InverseTransformPoint(transform.position); subAudioSource.transform.position = MainMultiAudioListener.Main.transform.TransformPoint(localPos); }
private void CreateSubAudioSource(VirtualMultiAudioListener virtualAudioListener, ref bool hardWareChannelsLeft) { //Take time so that the new sub audio source starts at the correct time in the sound int timeSample = 0; if (_safetyAudioSource != null) { timeSample = _safetyAudioSource.timeSamples; } var audioSource = CreateAudioSource(timeSample, "Sub Audio Source", ref hardWareChannelsLeft); _subAudioSources.Add(virtualAudioListener, audioSource); audioSource.volume = Volume * virtualAudioListener.Volume; //Do transform MoveSubAudioSourceToNeededLocation(virtualAudioListener, audioSource); audioSource.playOnAwake = false; }
private void VirtualAudioListenerAdded(VirtualMultiAudioListener virtualAudioListener) { bool hardwareChannelsLeft = true; CreateSubAudioSource(virtualAudioListener, ref hardwareChannelsLeft); }