Menu
CoddyTech

Ôn tập: đối tượng gần nhất trong tầm với

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

Chương này dùng các giao diện để một tập lệnh có thể làm việc với những đối tượng không có điểm chung nào ngoài một phương thức. Giờ đây, phím tương tác sẽ chọn đối tượng gần nhất.

challenge icon

Thử thách

Dễ

Phím Space nên tác động lên vật thể gần nhất, không phải vật thể đầu tiên.

  1. Trong Interactor, trước vòng lặp, thêm IInteractable nearest = null; và float best = Mathf.Infinity;.
  2. Trong vòng lặp, giữ lại mọi vật thể có khoảng cách từ Vector3.Distance đến người chơi nhỏ hơn best, cùng với khoảng cách đó.
  3. Sau vòng lặp, gọi nearest.Interact() nếu nearest không phải là null.

Nhấn Chơi, đứng giữa rương và đòn bẩy rồi nhấn Space: đòn bẩy được kéo. Sau đó nhấn Kiểm tra.

Tự làm thử

using UnityEngine;
using UnityEngine.InputSystem;

// Nhấn Space để tương tác với đối tượng đầu tiên trong tầm với.
public class Interactor : MonoBehaviour
{
    public float reach = 1.5f;

    void Update()
    {
        if (Keyboard.current.spaceKey.wasPressedThisFrame)
        {
            foreach (Collider c in Physics.OverlapSphere(transform.position, reach))
            {
                if (c.TryGetComponent(out IInteractable thing))
                {
                    thing.Interact();
                    return;
                }
            }
        }
    }
}
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