Wygrana lub przegrana
Część sekcji Fizyka i rozgrywka ścieżki Unity w Coddy. Lekcja 32 z 63.
Wyzwanie
ŚredniOstatni krok: sposób na wygraną. Zachowaj wszystko z wcześniejszych kroków i dodaj do Ball:
public int target = 10;(w Inspectorze ustaw 8).- Gra trwa, gdy
timeLeftjest większe od 0, ascorejest mniejsze odtarget. Zapisz to jako metodębool IsPlaying()i użyj jej: zegar odlicza czas, strzałki przesuwają piłkę, a monety zwiększają wynik tylko wtedy, gdy gra trwa. - Gdy moneta zwiększy
scoredo wartości równejtargetlub większej, wyświetlYou win!po wierszu z wynikiem. - Gdy najpierw skończy się czas, wyświetl
You lose!po wierszuTime's up!.
Naciśnij Play i zdobądź 8 punktów, zanim skończy się czas, a następnie naciśnij Check.
Spróbuj swoich sił
using UnityEngine;
public class Ball : MonoBehaviour
{
public float force = 10f;
public int score;
public float timeLimit = 60f;
public float timeLeft;
private Rigidbody rb;
void Start()
{
rb = GetComponent<Rigidbody>();
timeLeft = timeLimit;
}
void Update()
{
if (timeLeft > 0f)
{
timeLeft -= Time.deltaTime;
if (timeLeft <= 0f)
{
timeLeft = 0f;
Debug.Log("Time's up! Score: " + score);
}
}
}
void FixedUpdate()
{
if (timeLeft > 0f)
{
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