Menu
CoddyTech

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.

challenge icon

Aufgabe

Schwer

Programmiere die Golfkugel: zielen, aufladen, abschlagen.

  1. Ändere aim mit der rohen Horizontal-Achse um aimSpeed; setze pointer auf transform.position + Quaternion.Euler(0f, aim, 0f) * Vector3.forward.
  2. Im Ruhezustand (Geschwindigkeit unter stopSpeed) lädt das Gedrückthalten der Leertaste power mit chargeRate bis auf maxPower auf; beim Loslassen wird sie entlang der Zielrichtung gestoßen (Impuls), power wird zurückgesetzt und "Stroke " + strokes ausgegeben.
  3. 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

Übe selbstständig: Unity-Playground