Menu
CoddyTech

Revisão: Estados da Porta

Parte da seção Arquitetura de jogos no Unity do Journey de Unity da Coddy. Lição 32 de 50.

challenge icon

Desafio

Médio

Uma porta de castelo com uma fechadura. As setas movimentam o Player, e a chave dourada chama door.Unlock() quando o jogador a pega (ambos prontos). IState e a StateMachine do capítulo estão no projeto. Door.cs contém os valores do Inspector (closedY 1.5, openY 4, speed 2, stayOpen 2, reach 2.5), um campo machine e PlayerNear(). Dê à porta cinco estados, como classes em DoorStates.cs, chamadas LockedState, ClosedState, OpeningState, OpenState e ClosingState:

  • A porta começa Trancada. A tecla Espaço perto dela (PlayerNear()) apenas registra Locked. Unlock() muda uma porta trancada para Fechada e não faz nada em nenhum outro estado.
  • Fechada: a tecla Espaço perto da porta começa a abri-la.
  • Abrindo: a porta sobe a speed até que seu y seja openY; então fica Aberta.
  • Aberta: após stayOpen segundos, começa a fechar.
  • Fechando: a porta desce a speed até que seu y seja closedY; então fica Fechada. Se a tecla Espaço for pressionada perto dela durante a descida, ela abre novamente a partir de onde está.

Pressione Play, experimente a porta trancada, pegue a chave, abra a porta e atravesse, depois Check.

Experimente você mesmo

using UnityEngine;

// LockedState, ClosedState, OpeningState, OpenState e ClosingState

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