// Updates the source parameters. private void UpdateSource() { if (audioSource.clip != null && audioSource.clip.ambisonic) { // Use ambisonic decoder. audioSource.SetAmbisonicDecoderFloat( (int)EffectData.RoomEffectsGain, bypassRoomEffects ? 0.0f : ResonanceAudioRoomManager.ComputeRoomEffectsGain(transform.position)); audioSource.SetAmbisonicDecoderFloat((int)EffectData.Gain, ResonanceAudio.ConvertAmplitudeFromDb(gainDb)); #if !UNITY_2018_1_OR_NEWER audioSource.SetAmbisonicDecoderFloat((int)EffectData.Volume, audioSource.mute ? 0.0f : audioSource.volume); #endif // !UNITY_2018_1_OR_NEWER } else if (audioSource.spatialize) { // Use spatializer. audioSource.SetSpatializerFloat( (int)EffectData.RoomEffectsGain, bypassRoomEffects ? 0.0f : ResonanceAudioRoomManager.ComputeRoomEffectsGain(transform.position)); audioSource.SetSpatializerFloat((int)EffectData.Gain, ResonanceAudio.ConvertAmplitudeFromDb(gainDb)); audioSource.SetSpatializerFloat((int)EffectData.DirectivityAlpha, directivityAlpha); audioSource.SetSpatializerFloat((int)EffectData.DirectivitySharpness, directivitySharpness); audioSource.SetSpatializerFloat((int)EffectData.ListenerDirectivityAlpha, listenerDirectivityAlpha); audioSource.SetSpatializerFloat((int)EffectData.ListenerDirectivitySharpness, listenerDirectivitySharpness); audioSource.SetSpatializerFloat((int)EffectData.Occlusion, currentOcclusion); audioSource.SetSpatializerFloat((int)EffectData.Quality, (float)quality); audioSource.SetSpatializerFloat((int)EffectData.NearFieldEffectGain, nearFieldEffectEnabled ? nearFieldEffectGain: 0.0f); } }
void Update() { ResonanceAudioRoomManager.UpdateRoom(this); }
void OnDisable() { ResonanceAudioRoomManager.RemoveRoom(this); }
void OnEnable() { ResonanceAudioRoomManager.UpdateRoom(this); }
void Update() { ResonanceAudioRoomManager.UpdateReverbProbe(this); }
void OnDisable() { ResonanceAudioRoomManager.RemoveReverbProbe(this); }