Пример #1
0
        void Update()
        {
            // case needs to update PV information
            if (id >= 0)
            {
                // case this object is currently playing: update the emission, and update the output
                if (source)
                {
                    PlaneverbContext.UpdateEmission(id, transform.position);
                    PlaneverbDSPContext.UpateEmitter(id, transform.position, transform.forward);
                    output = PlaneverbContext.GetOutput(id);
                }
                // case this emission has ended since the last frame: end emission and reset the id
                else
                {
                    OnEndEmission();
                    id = -1;
                }

                if (PlaneverbContext.GetInstance().debugDraw)
                {
                    Debug.DrawRay(transform.position, transform.forward);
                }
            }
        }
Пример #2
0
        // two versions of Emit. one for playing stored Clip, other for AudioSource.PlayOneShot functionality

        public void Emit()
        {
            // start the emission and create the source
            id = PlaneverbContext.Emit(transform.position);
            PlaneverbDSPContext.UpateEmitter(id, transform.position, transform.forward);
            PlaneverbDSPContext.SetEmitterDirectivityPattern(id, DirectivityPattern);
            output = PlaneverbContext.GetOutput(id);
            source = PlaneverbAudioManager.pvDSPAudioManager.Play(Clip, id, this, Loop);
            if (source == null)
            {
                OnEndEmission();
            }
        }
Пример #3
0
        public PlaneverbDSPInput GetInput()
        {
            PlaneverbOutput pvoutput = emitter.GetOutput();

            dspParams.obstructionGain  = pvoutput.occlusion;
            dspParams.wetGain          = pvoutput.wetGain;
            dspParams.lowpass          = pvoutput.lowpass;
            dspParams.rt60             = pvoutput.rt60;
            dspParams.directionX       = pvoutput.directionX;
            dspParams.directionY       = pvoutput.directionY;
            dspParams.sourceDirectionX = pvoutput.sourceDirectionX;
            dspParams.sourceDirectionY = pvoutput.sourceDirectionY;
            return(dspParams);
        }