Menu
CoddyTech

Ôn tập: trạng thái cửa

Thuộc phần Kiến trúc trò chơi trong Unity trong hành trình Unity của Coddy. Bài học 41 trên 64.

Chương này tạo một lớp riêng cho mỗi trạng thái, chạy chúng bằng một StateMachine và để mỗi trạng thái tự quyết định cách thoát. Cánh cửa kết hợp cả ba cách này.

challenge icon

Thử thách

Trung bình

Điền nội dung cho năm trạng thái của cửa lâu đài trong DoorStates.cs; Door.cs có các hàm hỗ trợ.

  1. Locked: door.PressedNear() ghi log Locked. Door.Unlock() chuyển cửa đang khóa sang closed.
  2. Closed: PressedNear() chuyển sang opening. Opening: khi door.SlideTo(door.openY) trả về true, chuyển sang open.
  3. Open: sau door.stayOpen giây, chuyển sang closing.
  4. Closing: PressedNear() mở cửa lại; nếu không, khi SlideTo(door.closedY) hoàn tất, chuyển sang closed.

Nhấn Chơi, lấy chìa khóa rồi mở cửa. Sau đó nhấn Kiểm tra.

Tự làm thử

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 iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Kiến trúc trò chơi trong Unity

Tự luyện tập: Playground Unity