Wyścig z czasem
Część sekcji Fizyka i rozgrywka ścieżki Unity w Coddy. Lekcja 31 z 63.
Wyzwanie
ŚredniDodaj zegar. Zachowaj wszystko z wcześniejszych kroków i dodaj do Ball:
public float timeLimit = 60f;(w Inspectorze ustaw 30) orazpublic float timeLeft;. PonieważtimeLeftjest publiczne, wyświetla się w Inspectorze, gdzie możesz obserwować, jak jego wartość odlicza się do zera.- Gdy gra się rozpoczyna,
timeLeftma wartośćtimeLimit. W każdej klatce, gdy jest większe od 0, jego wartość zmniejsza się o czas trwania klatki. - Gdy osiągnie 0, pozostaje dokładnie równe 0, a piłka raz wyświetla w logu
Time's up! Score: 5wraz z wynikiem. - Gdy czas się skończy, strzałki przestają popychać piłkę.
Naciśnij Play i sprawdź, ile punktów zdobędziesz w 30 sekund, a potem naciśnij Check.
Spróbuj swoich sił
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);
}
}
Wszystkie lekcje w sekcji Fizyka i rozgrywka
1Ciało sztywne
Grawitacja i masaPopychanie za pomocą AddForceSkok z impulsemFixedUpdate dla fizykiPrędkośćCiała kinematycznePowtórka: platforma startowa2Kolizje
OnCollisionEnterW co uderzyłem?Rozbijanie przy zderzeniuStanie na podłożuOdbicie i tarcieKształty colliderówPodsumowanie: Zniszczalny mur5Projekt: Gorączka monet
Tocząca się piłkaMonety do zebrania