Menu
CoddyTech

Tham chiếu trong Inspector

Thuộc phần Những kiến thức cơ bản về lập trình trong Unity trong hành trình Unity của Coddy. Bài học 43 trên 85.

Một trường có thể chứa một đối tượng khác. Hãy đặt kiểu cho trường, chẳng hạn như Transform hoặc GameObject, rồi Inspector sẽ hiển thị một ô trống để bạn kéo một đối tượng từ Hierarchy vào. Tập lệnh camera này theo dõi đối tượng được kéo vào player, luôn ở cao hơn đối tượng đó 3 đơn vị và ở phía sau 6 đơn vị:

public Transform player;

void Update()
{
    transform.position = player.position + new Vector3(0, 3, -6);
}

Ô để trống sẽ hiển thị None, và câu lệnh đầu tiên sử dụng ô đó sẽ gây ra lỗi này ở mỗi khung hình: UnassignedReferenceException: The variable player of CameraFollow has not been assigned. Câu tiếp theo của thông báo cho biết bạn cần làm gì: You probably need to assign the player variable of the CameraFollow script in the inspector. Thông báo nêu tên trường và tập lệnh, giúp bạn biết cần điền ô nào.

Một số tập lệnh vẫn nên hoạt động khi ô để trống. Unity xem một ô trống là bằng null, vì vậy tập lệnh cần kiểm tra trước khi sử dụng. Nếu đặt if (player != null) quanh câu lệnh trong Update(), camera sẽ giữ nguyên vị trí khi không có người chơi, thay vì gây ra lỗi.

challenge icon

Thử thách

Trung bình

Đưa từng người gác đến chốt mà Inspector chỉ định.

  1. Thêm trường public Transform post;. Ô của Guard1 chứa Post1; ô của Guard2 để trống.
  2. Trong Update(), khi post == null, hãy dùng return; để người gác không có chốt đứng yên.
  3. Sau đó, di chuyển bằng Vector3.MoveTowards(transform.position, post.position, speed * Time.deltaTime).

Nhấn Chơi: Guard1 đi đến chốt của mình, còn Guard2 chờ. Sau đó nhấn Kiểm tra.

Tự làm thử

using UnityEngine;

public class Guard : MonoBehaviour
{
    // post: Transform mà lính gác này đi tới, được thiết lập trong Inspector
    public float speed = 2f;

    void Update()
    {
        // Đi tới post với tốc độ speed. Lính gác sẽ đứng yên nếu post chưa được gán.
    }
}

Tất cả bài học trong Những kiến thức cơ bản về lập trình trong Unity

Tự luyện tập: Playground Unity