// 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);
        }
    }
Exemple #2
0
 void Update()
 {
     ResonanceAudioRoomManager.UpdateRoom(this);
 }
Exemple #3
0
 void OnDisable()
 {
     ResonanceAudioRoomManager.RemoveRoom(this);
 }
Exemple #4
0
 void OnEnable()
 {
     ResonanceAudioRoomManager.UpdateRoom(this);
 }
Exemple #5
0
 void Update()
 {
     ResonanceAudioRoomManager.UpdateReverbProbe(this);
 }
Exemple #6
0
 void OnDisable()
 {
     ResonanceAudioRoomManager.RemoveReverbProbe(this);
 }