Murmelgolf
Teil des Abschnitts Physik und Gameplay der Unity-Journey von Coddy. Lektion 68 von 71.
Golf mit einer Murmel auf einem kleinen Grün. Die Murmel beginnt am Abschlag: Mit den Pfeiltasten zielst du, hältst die Leertaste gedrückt, um Kraft aufzubauen, und lässt sie los, um zu schießen. Sie rollt, prallt von den Begrenzungen und dem Block in der Mitte ab und wird langsamer. Sobald sie langsam genug ist, kommt sie ganz zum Stillstand. Erst dann kannst du wieder schießen. Eine Murmel, die langsam auf das Loch zurollt, fällt hinein; eine, die zu schnell ankommt, rollt direkt darüber hinweg. Je weniger Schläge, desto besser.
Schreibe zwei Skripte: Golf für die Murmel und Hole für das Loch.
Aufgabe
SchwerProgrammiere die Golfkugel: zielen, aufladen, abschlagen.
- Ändere
aimmit der rohen Horizontal-Achse umaimSpeed; setzepointerauftransform.position + Quaternion.Euler(0f, aim, 0f) * Vector3.forward. - Im Ruhezustand (Geschwindigkeit unter
stopSpeed) lädt das Gedrückthalten der LeertastepowermitchargeRatebis aufmaxPowerauf; beim Loslassen wird sie entlang der Zielrichtung gestoßen (Impuls),powerwird zurückgesetzt und"Stroke " + strokesausgegeben. - Setze in
FixedUpdate()im Ruhezustand beide Geschwindigkeiten auf null.
Drücke „Spielen“ und putte ein. Klicke dann auf „Prüfen“.
Probier es selbst
using UnityEngine;
public class Golf : MonoBehaviour
{
public int strokes = 0;
[SerializeField] private Transform pointer;
[SerializeField] private float aimSpeed = 90f;
[SerializeField] private float chargeRate = 4f;
[SerializeField] private float maxPower = 6f;
[SerializeField] private float stopSpeed = 0.3f;
private Rigidbody rb;
void Start()
{
rb = GetComponent<Rigidbody>();
}
// Mit den Pfeiltasten zielen, mit Space aufladen, beim Loslassen schießen, bei geringer Geschwindigkeit stoppen
}
Alle Lektionen in Physik und Gameplay
1Rigidbody
Schwerkraft und MasseMit AddForce schiebenMit einem Impuls springenFixedUpdate für PhysikGeschwindigkeitKinematische KörperRückblick: Startrampe4Coroutinen
AufrufenWiederholt aufrufen, Aufruf abbrechenDeine erste CoroutineSchleifen in CoroutinenCoroutinen beendenRückblick: Countdown10Projekt: Arena-Flucht
Die ArenaJäger2Kollisionen
OnCollisionEnterWas habe ich getroffen?Beim Aufprall zerbrechenAuf dem Boden stehenAbprallen und ReibungCollider-FormenRückblick: Zerstörbare Wand5Projekt: Münzrausch
Der rollende BallMünzen zum Einsammeln11Abschließende Herausforderungen
KanonenreichweiteBewegliche ZieleMurmelgolfIns LochEscape RoomDie TürÜbe selbstständig: Unity-Playground