Menu
CoddyTech

Revisão: estados da porta

Parte da seção Arquitetura de Jogos no Unity do Journey de Unity da Coddy. Lição 41 de 64.

Este capítulo deu a cada estado sua própria classe, executou todos com uma única StateMachine e deixou cada estado decidir por conta própria como sair. A porta reúne os três elementos.

challenge icon

Desafio

Médio

Preencha os cinco estados da porta do castelo em DoorStates.cs; Door.cs contém os métodos auxiliares.

  1. Locked: door.PressedNear() registra Locked. Door.Unlock() muda uma porta trancada para closed.
  2. Closed: PressedNear() muda para opening. Opening: quando door.SlideTo(door.openY) for true, muda para open.
  3. Open: após door.stayOpen segundos, muda para closing.
  4. Closing: PressedNear() abre a porta novamente; caso contrário, quando SlideTo(door.closedY) for true, muda para closed.

Pressione “Jogar”, pegue a chave e abra a porta. Em seguida, pressione “Verificar”.

Experimente você mesmo

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 iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Arquitetura de Jogos no Unity

Pratique por conta própria: Playground de Unity