Example #1
0
            public void AnswerPoll(Transform listener, ref ReadOut cumulativeReadout)
            {
                // Return when listener not in range
                Vector3 positionDelta = (parent.position - listener.position);

                if (positionDelta.sqrMagnitude > rollOff.maxDistance * rollOff.maxDistance)
                {
                    return;
                }

                // Get distance rolloff
                float multiplier = rollOff.GetMultiplier(parent, listener);

                if (multiplier > loudestListener)
                {
                    loudestListener = multiplier;
                }

                ReadOut readoutCurrent = ReadOut.zero;

                foreach (Clip clip in clips)
                {
                    clip.AddToReadOut(ref readoutCurrent, loudestListener);
                }

                // add vibration and shake * multiplier
                cumulativeReadout += readoutCurrent * multiplier;
            }
Example #2
0
        public static void Update()
        {
            if (!initialized)
            {
                Initialize();
            }

            // Update Sources
            if (onUpdateSources != null)
            {
                onUpdateSources.Invoke();
            }

            // Return if no registered Sources
            if (onPollSources == null)
            {
                return;
            }

            // Deliver ReadOuts
            foreach (Receiver receiver in receivers)
            {
                ReadOut cumulativeReadout = ReadOut.zero;

                // Calculates RollOff for each Receiver Position
                onPollSources(receiver.position, ref cumulativeReadout);

                receiver.receiveTarget(cumulativeReadout);
            }
        }
Example #3
0
            public void AddToReadOut(ref ReadOut readOut, float loudestListener)
            {
                if (shakeCurrentUpdated)
                {
                    readOut.shake += shakeCurrent;
                    return;
                }


                shakeCurrent = Shake.zero;

                if (positionMagnitude != Vector3.zero)
                {
                    shakeCurrent.posOffset.x = (Mathf.PerlinNoise(noisePositionOffsetCurrent, 0) * 2f - 1f) * positionMagnitude.x;
                    shakeCurrent.posOffset.y = (Mathf.PerlinNoise(0, noisePositionOffsetCurrent) * 2f - 1f) * positionMagnitude.y;
                    shakeCurrent.posOffset.z = (Mathf.PerlinNoise(noisePositionOffsetCurrent, noisePositionOffsetCurrent) * 2f - 1f) * positionMagnitude.z;
                }

                if (rotationMagnitude != Vector3.zero)
                {
                    shakeCurrent.rotOffset.x = (Mathf.PerlinNoise(noiseRotationOffsetCurrent, 0) * 2f - 1f) * rotationMagnitude.x;
                    shakeCurrent.rotOffset.y = (Mathf.PerlinNoise(0, noiseRotationOffsetCurrent) * 2f - 1f) * rotationMagnitude.y;
                    shakeCurrent.rotOffset.z = (Mathf.PerlinNoise(noiseRotationOffsetCurrent, noiseRotationOffsetCurrent) * 2f - 1f) * rotationMagnitude.z;
                }

                if (fadeTimer.IsWarmingUp())
                {
                    shakeCurrent *= DsLib.Math.SinerpNormalized(fadeTimer.GetCyclePercentElapsed());
                }
                if (fadeTimer.IsCoolingDown())
                {
                    shakeCurrent *= DsLib.Math.CoserpNormalized(fadeTimer.GetCyclePercentRemaining());
                }

                shakeCurrentUpdated = true;

                readOut.shake += shakeCurrent;
            }
Example #4
0
            public void AddToReadOut(ref ReadOut readOut, float loudestListener)
            {
                if (paused || durationRemaining <= 0)
                {
                    return;
                }

                if (vibrationCurrentUpdated)
                {
                    readOut.vibration += vibrationCurrent;
                    return;
                }

                float timePercent = 1 - (durationRemaining / duration);

                vibrationCurrent = new Vibration(
                    vibrationLeft.Evaluate(timePercent) * intensity,
                    vibrationRight.Evaluate(timePercent) * intensity);

                vibrationCurrentUpdated = true;

                readOut.vibration += vibrationCurrent;
            }
Example #5
0
 public void AddToReadOut(ref ReadOut readOut, float loudestListener)
 {
     audioSource.volume = volume * loudestListener;
 }
Example #6
0
        /// <summary>
        /// Return read-outs of invoice
        /// </summary>
        /// <returns></returns>
        public ConsumptionValue GetReadOut()
        {
            Contract.Requires(ReadOut != null);

            return(ReadOut.GetReadOut());
        }
 public void Post([FromBody] ReadOut value)
 {
     readOuts.Add(value);
 }