Наперегонки со временем
Часть раздела Физика и игровой процесс путешествия по Unity на Coddy. Урок 31 из 63.
Задание
СреднеДобавьте таймер. Сохраните всё из предыдущих шагов и добавьте в 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);
}
}
Все уроки раздела Физика и игровой процесс
1Твёрдое тело
Гравитация и массаТолкаем с помощью AddForceПрыжок с импульсомFixedUpdate для физикиСкоростьКинематические телаПовторение: пусковая площадка2Столкновения
OnCollisionEnterВо что я попал?Разрушение при столкновенииСтояние на землеОтскок и трениеФормы коллайдеровПовторение: разрушаемая стена5Проект: Погоня за монетами
Катящийся мячМонеты для сбора