Menu
CoddyTech

Rückblick: Bullet Time

Teil des Abschnitts Echte Spiele entwickeln der Unity-Journey von Coddy. Lektion 36 von 56.

challenge icon

Aufgabe

Mittel

Gib dem Spiel Bullet Time, gesteuert über eine Fokusleiste. Schreibe BulletTime.cs auf das Game-Objekt. Im Inspector legst du slowScale (0.2), maxFocus (2), recharge (0.5) und focusBar fest, das gefüllte Image oben auf dem Bildschirm. Speichere den Wert der Leiste in float focus.

  • focus beginnt voll, bei maxFocus.
  • Solange die Leertaste gedrückt ist und focus über 0 liegt, läuft das Spiel mit slowScale, wobei der Physik-Zeitschritt gegenüber 0.02 um denselben Faktor verkleinert wird, und focus nimmt pro realer Sekunde um 1 ab, niemals unter 0.
  • Die übrige Zeit läuft das Spiel mit normaler Geschwindigkeit und einem Physik-Zeitschritt von 0.02. Eine leere Leiste beendet Bullet Time, auch wenn die Leertaste weiterhin gedrückt ist.
  • Solange die Leertaste nicht gedrückt ist, füllt sich focus pro realer Sekunde um recharge wieder auf, bis höchstens maxFocus.
  • In jedem Frame entspricht der Wert von fillAmount der Leiste focus geteilt durch maxFocus.

Drücke Play, halte die Leertaste gedrückt und beobachte den Regen, dann Check.

Probier es selbst

using UnityEngine;
using UnityEngine.UI;

public class BulletTime : MonoBehaviour
{
    public float slowScale = 0.2f;
    public float maxFocus = 2f;
    public float recharge = 0.5f;
    public Image focusBar;

    float focus;

    void Update()
    {
    }
}

Alle Lektionen in Echte Spiele entwickeln