Exemplo n.º 1
0
        void Update()
        {
            audioEngineSource.GetParameters(this);

            var requiresScene = (occlusionMode != OcclusionMode.NoOcclusion || reflections);
            var sceneExported = (managerData.gameEngineState.Scene().GetScene() != IntPtr.Zero);

            if (requiresScene && !sceneExported)
            {
                Debug.LogError("Scene not found. Make sure to pre-export the scene.");
                return;
            }

            var environment = managerData.gameEngineState.Environment().GetEnvironment();

            var listener = GameObject.FindObjectOfType <AudioListener>();

            if (!listener)
            {
                return;
            }

            var listenerPosition = Common.ConvertVector(listener.transform.position);
            var listenerAhead    = Common.ConvertVector(listener.transform.forward);
            var listenerUp       = Common.ConvertVector(listener.transform.up);

            var source = new Source();

            source.position    = Common.ConvertVector(transform.position);
            source.ahead       = Common.ConvertVector(transform.forward);
            source.up          = Common.ConvertVector(transform.up);
            source.right       = Common.ConvertVector(transform.right);
            source.directivity = new Directivity();
            source.directivity.dipoleWeight = dipoleWeight;
            source.directivity.dipolePower  = dipolePower;
            source.directivity.callback     = IntPtr.Zero;
            source.distanceAttenuationModel = distanceAttenuationModel;
            source.airAbsorptionModel       = airAbsorptionModel;

            directPath = PhononCore.iplGetDirectSoundPath(environment, listenerPosition,
                                                          listenerAhead, listenerUp, source, sourceRadius, occlusionSamples,
                                                          occlusionMode, occlusionMethod);

            audioEngineSource.UpdateParameters(this);

            if (audioEngineSource.ShouldSendIdentifier(this))
            {
                audioEngineSource.SendIdentifier(this, GetIdentifierToSend());
            }

            if (reflections && simulationType == SourceSimulationType.BakedStaticSource && (bakedDataSize == 0))
            {
                Debug.LogWarning("Steam Audio Source (" + uniqueIdentifier + ") with " +
                                 "Baked Static Source setting does not have any baked data.");
            }
        }
        void Update()
        {
            audioEngineSource.GetParameters(this);

            var requiresScene = (occlusionMode != OcclusionMode.NoOcclusion || reflections);
            var sceneExported = (managerData.gameEngineState.Scene().GetScene() != IntPtr.Zero);

            if (requiresScene && !sceneExported)
            {
                Debug.LogError("Scene not found. Make sure to pre-export the scene.");
                return;
            }

            var environment = managerData.gameEngineState.Environment().GetEnvironment();

            var listener         = GameObject.FindObjectOfType <AudioListener>();
            var listenerPosition = Common.ConvertVector(listener.transform.position);
            var listenerAhead    = Common.ConvertVector(listener.transform.forward);
            var listenerUp       = Common.ConvertVector(listener.transform.up);

            var sourcePosition = Common.ConvertVector(transform.position);
            var sourceAhead    = Common.ConvertVector(transform.forward);
            var sourceUp       = Common.ConvertVector(transform.up);
            var sourceRight    = Common.ConvertVector(transform.right);

            var source = new Source {
                position    = sourcePosition,
                ahead       = sourceAhead,
                up          = sourceUp,
                right       = sourceRight,
                directivity = new Directivity {
                    dipoleWeight = this.dipoleWeight,
                    dipolePower  = this.dipolePower,
                    callback     = IntPtr.Zero,
                    userData     = IntPtr.Zero
                }
            };

            directPath = PhononCore.iplGetDirectSoundPath(environment, listenerPosition, listenerAhead, listenerUp,
                                                          source, sourceRadius, occlusionMode, occlusionMethod);

            audioEngineSource.UpdateParameters(this);

            if (audioEngineSource.ShouldSendIdentifier(this))
            {
                audioEngineSource.SendIdentifier(this, GetIdentifierToSend());
            }
        }