Menu
CoddyTech

Murmelgolf

Teil des Abschnitts Physik und Gameplay der Unity-Journey von Coddy. Lektion 62 von 63.

Golf mit einer Murmel auf einem kleinen Grün. Die Murmel beginnt am Abschlag: Du zielst mit den Pfeiltasten, hältst die Leertaste gedrückt, um Kraft aufzubauen, und lässt sie los, um zu schießen. Sie rollt, prallt von den Banden und dem Block in der Mitte ab und wird langsamer, bis sie schließlich ganz zum Stillstand kommt, sobald sie langsam genug ist. Erst dann kannst du erneut schießen. Eine Murmel, die langsam ins Loch rollt, 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

Der Inspector gibt Golf pointer (den kleinen gelben Ball), aimSpeed (90), chargeRate (4), maxPower (6) und stopSpeed (0.3) vor. Die Masse der Murmel beträgt 0.5.

  • Die Ausrichtung ist ein Winkel um die y-Achse, zu Beginn 0 (geradeaus, +z). Der Rechtspfeil dreht sie nach rechts und der Linkspfeil nach links, mit aimSpeed Grad pro Sekunde. Platziere den Zeiger in jedem Frame 1 Einheit von der Murmel entfernt in Richtung der Ausrichtung.
  • Die Murmel ruht, solange ihre Geschwindigkeit unter stopSpeed liegt. In jedem Physikschritt wird eine ruhende Murmel vollständig angehalten: Geschwindigkeit und Winkelgeschwindigkeit werden auf null gesetzt.
  • Nur wenn die Murmel ruht: Wenn du die Leertaste gedrückt hältst, baut sich die Kraft mit chargeRate pro Sekunde auf, höchstens bis maxPower. Wenn du die Leertaste loslässt, wird die Murmel mit einem Impuls dieser Stärke entlang der Ausrichtung angestoßen. Die Kraft wird dann auf 0 zurückgesetzt, und ein öffentliches int strokes wird um 1 erhöht und protokolliert, als Stroke 1.

Der Inspector gibt für Hole sinkSpeed (3) vor.

  • Wenn die Murmel (das Objekt mit dem Golf-Skript) langsamer als sinkSpeed ins Loch rollt, protokolliere die Anzahl ihrer Schläge als In the cup in 2 strokes! und deaktiviere die Murmel. Eine schnellere Murmel rollt darüber hinweg.

Drücke Play und versenke die Murmel mit so wenigen Schlägen wie möglich, dann drücke Check.

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 Kraft aufladen, beim Loslassen schießen und anhalten, wenn die Geschwindigkeit niedrig ist
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Physik und Gameplay