public void SetTimeScale(float scale) { if (scale >= 0) { Time.timeScale = defaultTimeScale * scale; if (scale != 0) { Time.fixedDeltaTime = defaultFixedDelta * scale; } OnTimeScaleChange?.Invoke(scale); } }
private void Update() { if (Math.Abs(Time.timeScale - targetTimeScale) > 0.000001) { Time.timeScale = Mathf.SmoothDamp(Time.timeScale, targetTimeScale, ref velocityTimeScale, smoothTime); OnTimeScaleChange?.Invoke(); } if (Math.Abs(Time.fixedDeltaTime - targetFixedDeltaTime) > 0.000001) { Time.fixedDeltaTime = Mathf.SmoothDamp(Time.fixedDeltaTime, targetFixedDeltaTime, ref velocityFixedDeltaTime, smoothTime); } }