Menu
CoddyTech

Наперегонки со временем

Часть раздела Физика и игровой процесс путешествия по Unity на Coddy. Урок 31 из 63.

challenge icon

Задание

Средне

Добавьте таймер. Сохраните всё из предыдущих шагов и добавьте в Ball:

  • public float timeLimit = 60f; (в Inspector задайте 30) и public float timeLeft;. Поскольку timeLeft объявлена как public, она отображается в Inspector, где можно следить за обратным отсчётом.
  • При запуске игры значение timeLeft равно timeLimit. Каждый кадр, пока оно больше 0, оно уменьшается на время кадра.
  • Когда оно достигает 0, оно остаётся ровно равным 0, а шар один раз выводит в лог Time's up! Score: 5 вместе со своим счётом.
  • Когда время истечёт, стрелки больше не будут толкать шар.

Нажмите Play и посмотрите, сколько очков вы наберёте за 30 секунд, затем нажмите Check.

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

using UnityEngine;

public class Ball : MonoBehaviour
{
    public float force = 10f;
    public int score;
    private Rigidbody rb;

    void Start()
    {
        rb = GetComponent<Rigidbody>();
    }

    void FixedUpdate()
    {
        float x = Input.GetAxis("Horizontal");
        float z = Input.GetAxis("Vertical");
        rb.AddForce(new Vector3(x, 0f, z) * force);
    }

    public void AddScore(int points)
    {
        score += points;
        Debug.Log("Score: " + score);
    }
}

Все уроки раздела Физика и игровой процесс