Menu
CoddyTech

Trạng thái cảnh báo

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 36 trên 64.

challenge icon

Thử thách

Trung bình

Báo động cho tháp pháo khi người chơi đến gần.

  1. Trong TurretStates.cs, viết AlertState, với đầu và người chơi. Khi vào: đặt màu đầu thành Color.red, ghi log Intruder!. Khi cập nhật: hướng đầu về phía người chơi quanh trục y. Khi thoát: ghi log All clear.
  2. Trong Turret, viết SetState(IState next): gọi Exit của trạng thái cũ, rồi gọi Enter của trạng thái mới.
  3. Cập nhật trạng thái báo động khi người chơi ở trong range, nếu không thì quét, sau đó cập nhật trạng thái hiện tại.

Nhấn Chơi rồi đi lại gần. Sau đó nhấn Kiểm tra.

Tự làm thử

using UnityEngine;

public class ScanState : IState
{
    private Transform head;
    private float angle;
    private float direction = 1f;

    public ScanState(Transform head)
    {
        this.head = head;
    }

    public void Enter()
    {
        angle = 0f;
        direction = 1f;
        head.GetComponent<Renderer>().material.color = Color.green;
    }

    public void Tick()
    {
        angle += 90f * direction * Time.deltaTime;
        if (angle > 45f)
        {
            angle = 45f;
            direction = -1f;
        }
        if (angle < -45f)
        {
            angle = -45f;
            direction = 1f;
        }
        head.localRotation = Quaternion.Euler(0f, angle, 0f);
    }

    public void Exit()
    {
    }
}

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

Tự luyện tập: Playground Unity