Menu
CoddyTech

Lo stato di allerta

Fa parte della sezione Architettura dei giochi in Unity del percorso Unity di Coddy. Lezione 36 di 64.

challenge icon

Sfida

Medio

Fai scattare l’allarme della torretta quando il giocatore si avvicina.

  1. In TurretStates.cs, scrivi AlertState, fornendo la testa e il giocatore. All’ingresso: imposta la testa su Color.red, registra Intruder!. A ogni aggiornamento: rivolgi la testa verso il giocatore sull’asse y. All’uscita: registra All clear.
  2. In Turret, scrivi SetState(IState next): esegui Exit dello stato precedente, poi Enter del nuovo.
  3. Durante l’aggiornamento, attiva l’allarme entro range, altrimenti esegui la scansione, poi aggiorna lo stato corrente.

Premi «Gioca» e avvicinati. Poi premi «Verifica».

Provalo tu

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()
    {
    }
}

Tutte le lezioni di Architettura dei giochi in Unity

Esercitati da solo: Playground Unity