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; }
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); } }
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; }
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; }
public void AddToReadOut(ref ReadOut readOut, float loudestListener) { audioSource.volume = volume * loudestListener; }
/// <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); }