Menu
CoddyTech

Der Alarmzustand

Teil des Abschnitts Spielarchitektur in Unity der Unity-Journey von Coddy. Lektion 36 von 64.

challenge icon

Aufgabe

Mittel

Alarmiere den Geschützturm, wenn sich der Spieler nähert.

  1. Schreibe in TurretStates.cs AlertState, das den Kopf und den Spieler erhält. Beim Eintritt: Kopf auf Color.red setzen, Intruder! protokollieren. Bei Tick: den Spieler in der y-Ebene anvisieren. Beim Austritt: All clear protokollieren.
  2. Schreibe in Turret SetState(IState next): zuerst Exit des alten Zustands, dann Enter des neuen.
  3. Aktualisiere den Alarm innerhalb von range, scanne andernfalls und führe dann einen Tick des aktuellen Zustands aus.

Drücke „Spielen“ und gehe näher heran. Drücke anschließend „Prüfen“.

Probier es selbst

using UnityEngine;

public class ScanState : IState
{
    private Transform head;
    private float angle;
    private float direction = 1f;

    public ScanState(Transform head)
    {
        this.head = head;
    }

    public void Enter()
    {
        angle = 0f;
        direction = 1f;
        head.GetComponent<Renderer>().material.color = Color.green;
    }

    public void Tick()
    {
        angle += 90f * direction * Time.deltaTime;
        if (angle > 45f)
        {
            angle = 45f;
            direction = -1f;
        }
        if (angle < -45f)
        {
            angle = -45f;
            direction = 1f;
        }
        head.localRotation = Quaternion.Euler(0f, angle, 0f);
    }

    public void Exit()
    {
    }
}

Alle Lektionen in Spielarchitektur in Unity

Übe selbstständig: Unity-Playground