Menu
CoddyTech

Повторение: Bullet Time

Часть раздела Создание настоящих игр путешествия по Unity на Coddy. Урок 37 из 60.

В этой главе мы замораживали, замедляли и перезапускали время в игре. Режим замедления времени объединяет всё это: уменьшенное значение Time.timeScale, соответствующий ему шаг физики и шкалу, отсчитывающую реальные секунды.

challenge icon

Задание

Средне

Добавь в игру эффект замедления времени.

  1. В Update(), пока удерживается Space и focus > 0f: установи масштаб времени slowScale, шаг физики 0.02f * slowScale, а focus должен уменьшаться на 1 за реальную секунду, но не ниже 0.
  2. Иначе установи масштаб 1f, шаг 0.02f; когда Space не удерживается, focus должен восстанавливаться со скоростью recharge за реальную секунду, но не выше maxFocus.
  3. Затем focusBar.fillAmount = focus / maxFocus;

Нажми «Играть» и удерживай Space: дождь замедлится. Затем нажми «Проверить».

Попробуйте сами

using UnityEngine;
using UnityEngine.UI;

public class BulletTime : MonoBehaviour
{
    public float slowScale = 0.2f;
    public float maxFocus = 2f;
    public float recharge = 0.5f;
    public Image focusBar;

    float focus;

    void Start()
    {
        focus = maxFocus;
    }

    void Update()
    {
        // Замедление времени, пока удерживается Space и остаётся запас концентрации; в противном случае — обычное время, затем обновление шкалы
    }
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Создание настоящих игр

Потренируйтесь самостоятельно: Песочница Unity