Gewinnen oder verlieren
Teil des Abschnitts Physik und Gameplay der Unity-Journey von Coddy. Lektion 32 von 63.
Aufgabe
MittelLetzter Schritt: eine Möglichkeit zu gewinnen. Behalte alles aus den vorherigen Schritten bei und ergänze Ball um Folgendes:
public int target = 10;(im Inspector wird 8 festgelegt).- Das Spiel läuft, solange
timeLeftgrößer als 0 undscorekleiner alstargetist. Schreibe das als Methodebool IsPlaying()und verwende sie: Die Uhr zählt herunter, die Pfeiltasten bewegen den Ball und Münzen erhöhen den Punktestand nur, solange das Spiel läuft. - Wenn eine Münze
scoreauftargetoder höher bringt, gib nach der Zeile mit dem PunktestandYou win!aus. - Wenn zuerst die Zeit abläuft, gib nach der Zeile
Time's up!You lose!aus.
Drücke Play und erreiche 8 Punkte, bevor die Zeit abläuft. Klicke dann auf Check.
Probier es selbst
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);
}
}
Alle Lektionen in Physik und Gameplay
1Rigidbody
Schwerkraft und MasseMit AddForce schiebenMit einem Impuls springenFixedUpdate für PhysikGeschwindigkeitKinematische KörperRückblick: Startrampe2Kollisionen
OnCollisionEnterWas habe ich getroffen?Beim Aufprall zerbrechenAuf dem Boden stehenAbprallen und ReibungCollider-FormenRückblick: Zerstörbare Wand5Projekt: Münzrausch
Der rollende BallMünzen zum Sammeln