Esempio n. 1
0
        private void Update()
        {
            if (_currentFactor != _factor)
            {
                SetNewTimeScale(_mode, _factor);
                _currentFactor = _factor;
            }

            if (_currentMode != _mode)
            {
                SetNewTimeScale(_mode, _factor);
                _currentMode = _mode;
            }
        }
Esempio n. 2
0
        private void SetNewTimeScale(TimeManagerModeEnum mode, float factor)
        {
            switch (mode)
            {
            case TimeManagerModeEnum.FastMotion:
                Time.timeScale        = _defaultTimeScale * factor;
                Time.maximumDeltaTime = Time.timeScale / _maximumDeltaTimeFactor;
                break;

            case TimeManagerModeEnum.SlowMotion:
                if (factor != 0f)
                {
                    Time.timeScale = _defaultTimeScale / factor;
                }
                else
                {
                    Time.timeScale = 0f;
                }
                Time.maximumDeltaTime = 1f / _maximumDeltaTimeFactor;
                break;
            }

            Time.fixedDeltaTime = _defaultFixedDeltaTime * Time.timeScale;
        }