Menu
CoddyTech

Riepilogo: stati delle porte

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

Questo capitolo ha assegnato a ogni stato una propria classe, li ha gestiti con un’unica StateMachine e ha lasciato che ogni stato decidesse da sé come uscirne. La porta riunisce questi tre elementi.

challenge icon

Sfida

Medio

Completa i cinque stati della porta del castello in DoorStates.cs; Door.cs contiene le funzioni di supporto.

  1. Bloccata: door.PressedNear() registra Locked. Door.Unlock() cambia lo stato di una porta bloccata in closed.
  2. Chiusa: PressedNear() passa a opening. In apertura: quando door.SlideTo(door.openY) è true, passa a open.
  3. Aperta: dopo door.stayOpen secondi, passa a closing.
  4. In chiusura: PressedNear() la riapre; altrimenti, quando SlideTo(door.closedY) è true, passa a closed.

Premi «Gioca», prendi la chiave e apri la porta. Poi premi «Verifica».

Provalo tu

using UnityEngine;

public class LockedState : IState
{
    private Door door;

    public LockedState(Door door)
    {
        this.door = door;
    }

    public void Enter()
    {
    }

    public void Tick()
    {
    }

    public void Exit()
    {
    }
}

public class ClosedState : IState
{
    private Door door;

    public ClosedState(Door door)
    {
        this.door = door;
    }

    public void Enter()
    {
    }

    public void Tick()
    {
    }

    public void Exit()
    {
    }
}

public class OpeningState : IState
{
    private Door door;

    public OpeningState(Door door)
    {
        this.door = door;
    }

    public void Enter()
    {
    }

    public void Tick()
    {
    }

    public void Exit()
    {
    }
}

public class OpenState : IState
{
    private Door door;

    public OpenState(Door door)
    {
        this.door = door;
    }

    public void Enter()
    {
    }

    public void Tick()
    {
    }

    public void Exit()
    {
    }
}

public class ClosingState : IState
{
    private Door door;

    public ClosingState(Door door)
    {
        this.door = door;
    }

    public void Enter()
    {
    }

    public void Tick()
    {
    }

    public void Exit()
    {
    }
}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Architettura dei giochi in Unity

Esercitati da solo: Playground Unity