private void Update() { if (!_isInitialised) { _groupComponents = FabricManager.Instance.gameObject.GetComponentsInChildren <GroupComponent>(); _isInitialised = true; } if (_presetList != null) { for (int i = 0; i < _presetList.Length; i++) { Preset preset = _presetList[i]; if (preset.HasEventNameSet() && preset.IsEventActive()) { AddPreset(preset); } } } if (_groupComponents == null) { return; } for (int j = 0; j < _groupComponents.Length; j++) { GroupComponent groupComponent = _groupComponents[j]; float num = 0f; float num2 = 1f; for (int k = 0; k < _activePresets.Count; k++) { Preset preset2 = _activePresets[k]; if (preset2.HasEventNameSet() && !preset2.IsEventActive() && !preset2.IsDeactivating) { preset2.Deactivate(); } if (preset2.IsActive()) { GroupPreset groupComponentByID = preset2.GetGroupComponentByID(groupComponent.GetInstanceID()); if (groupComponentByID != null) { num += groupComponentByID.CalculateVolume(); num2 *= groupComponentByID.CalculatePitch(); } } else { _activePresets.Remove(preset2); } } float value = AudioTools.DBToLinear(num); AudioTools.Limit(ref value, 0f, 1f); groupComponent.MixerVolume = value; groupComponent.MixerPitch = num2; } }
public void Update() { float realtimeDelta = FabricTimer.GetRealtimeDelta(); if (_direction > 0f) { _seekTarget += _velocity * realtimeDelta; } else { _seekTarget -= _velocity * realtimeDelta; } _markers.Update(_seekTarget, _direction); if (_markers.IsMarkerKeyOff()) { _seekTarget = _markers._keyOffMarker._value; } if (_velocity != 0f) { if (_seekTarget > MAX_NORMALISED_RANGE) { if (_loopBehaviour == ParameterLoopBehaviour.Loop) { _seekTarget -= MAX_NORMALISED_RANGE - MIN_NORMALISED_RANGE; } else if (_loopBehaviour == ParameterLoopBehaviour.OneShot) { _seekTarget = MAX_NORMALISED_RANGE; } else if (_loopBehaviour == ParameterLoopBehaviour.PingPong) { _direction = -1f; } else { _seekTarget = MAX_NORMALISED_RANGE; } _markers.Reset(); } else if (_seekTarget < MIN_NORMALISED_RANGE) { if (_loopBehaviour == ParameterLoopBehaviour.Loop) { _seekTarget += MAX_NORMALISED_RANGE - MIN_NORMALISED_RANGE; } else if (_loopBehaviour == ParameterLoopBehaviour.OneShot) { _seekTarget = MIN_NORMALISED_RANGE; } else if (_loopBehaviour == ParameterLoopBehaviour.PingPong) { _direction = 1f; } else { _seekTarget = MIN_NORMALISED_RANGE; } _markers.Reset(); } if (_seekTarget > MAX_NORMALISED_RANGE) { _seekTarget = MAX_NORMALISED_RANGE; } else if (_seekTarget < MIN_NORMALISED_RANGE) { _seekTarget = MIN_NORMALISED_RANGE; } } if (_seekSpeed != 0f) { float num = _seekSpeed * realtimeDelta; if (_seekTarget > _value) { _value += num; if (_value > _seekTarget) { _value = _seekTarget; } } else if (_seekTarget < _value) { _value -= num; if (_value < _seekTarget) { _value = _seekTarget; } } } else { _value = _seekTarget; } AudioTools.Limit(ref _value, 0f, 1f); }
public void SetValue(float value) { AudioTools.Limit(ref value, _min, _max); _seekTarget = RTPManager.CalculateNewValueRange(value, 0f, 1f, _min, _max); }