Beispiel #1
0
        public void DoSlowMotion(float duration, float slowFactor, TimeScale.Type type)
        {
            SlowMotionFactor = slowFactor;
            IsSlowMotion     = true;
            switch (type)
            {
            case TimeScale.Type.Global:
                TimeScale.GlobalTimeScale = 1 / slowFactor;
                StartCoroutine(SlowMotion(duration, type));
                break;

            case TimeScale.Type.Player:
                TimeScale.PlayerTimeScale = 1 / slowFactor;
                StartCoroutine(SlowMotion(duration, type));
                break;

            case TimeScale.Type.Enemy:
                TimeScale.EnemyTimeScale = 1 / slowFactor;
                StartCoroutine(SlowMotion(duration, type));
                break;
            }
        }
Beispiel #2
0
        private static IEnumerator SlowMotion(float duration, TimeScale.Type type)
        {
            float elapsedTime = 0f;

            while (elapsedTime < duration)
            {
                yield return(elapsedTime += Time.deltaTime);
            }
            switch (type)
            {
            case TimeScale.Type.Global:
                TimeScale.GlobalTimeScale = TimeScale.DEFAULT;
                break;

            case TimeScale.Type.Player:
                TimeScale.PlayerTimeScale = TimeScale.DEFAULT;
                break;

            case TimeScale.Type.Enemy:
                TimeScale.EnemyTimeScale = TimeScale.DEFAULT;
                break;
            }
            IsSlowMotion = false;
        }