Menu
CoddyTech

Récapitulatif : états des portes

Fait partie de la section Architecture de jeu dans Unity du Journey Unity de Coddy. Leçon 41 sur 64.

Ce chapitre a attribué à chaque état sa propre classe, les a exécutés avec une seule StateMachine et a laissé chaque état décider de sa propre façon de sortir. La porte réunit les trois.

challenge icon

Défi

Moyen

Complète les cinq états de la porte du château dans DoorStates.cs ; Door.cs contient les méthodes utilitaires.

  1. Verrouillée : door.PressedNear() affiche Locked dans le journal. Door.Unlock() fait passer une porte verrouillée à l’état closed.
  2. Fermée : PressedNear() fait passer à l’état opening. Ouverture : dès que door.SlideTo(door.openY) vaut true, passer à l’état open.
  3. Ouverte : après door.stayOpen secondes, passer à l’état closing.
  4. Fermeture : PressedNear() rouvre la porte ; sinon, dès que SlideTo(door.closedY) est atteint, passer à l’état closed.

Appuie sur « Jouer », récupère la clé et ouvre la porte. Puis clique sur « Vérifier ».

Essayez vous-même

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 iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Architecture de jeu dans Unity

Entraînez-vous par vous-même : Playground Unity