Tập lệnh để lấy các đối tượng trong Unity

Lấy đồ vật trong Unity là tương tác cơ bản trong nhiều trò chơi và ứng dụng. Trong hướng dẫn này, chúng ta sẽ thực hiện các bước cơ bản để triển khai việc lấy đối tượng bằng cách sử dụng tập lệnh C# của Unity. Hãy giữ nó đơn giản.

Bước 1: Thiết lập cảnh của bạn

Trước tiên, hãy thiết lập cảnh Unity của bạn với các thành phần cần thiết:

  1. Tạo đối tượng 3D:

    • Thêm một khối lập phương hoặc hình cầu để làm đối tượng bạn muốn lấy.
  2. Thêm một thân cứng:

    • Đính kèm thành phần Rigidbody vào đối tượng để kích hoạt các tương tác vật lý.

Bước 2: Triển khai tập lệnh Grabbing

  • Tạo một tập lệnh C# mới, hãy gọi nó là 'ObjectGrabber' và đính kèm nó vào máy ảnh chính của bạn hoặc đối tượng đang thực hiện thao tác lấy.
using UnityEngine;

public class ObjectGrabber : MonoBehaviour
{
    private bool isGrabbing = false;
    private GameObject grabbedObject;
    private float grabDistance = 3f;

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.G))
        {
            if (isGrabbing)
            {
                ReleaseObject();
            }
            else
            {
                GrabObject();
            }
        }

        if (isGrabbing)
        {
            UpdateObjectPosition();
        }
    }

    void GrabObject()
    {
        RaycastHit hit;
        if (Physics.Raycast(transform.position, transform.forward, out hit, grabDistance))
        {
            if (hit.collider.CompareTag("Grabbable"))
            {
                grabbedObject = hit.collider.gameObject;
                grabbedObject.GetComponent<Rigidbody>().isKinematic = true;
                isGrabbing = true;
            }
        }
    }

    void ReleaseObject()
    {
        if (grabbedObject != null)
        {
            grabbedObject.GetComponent<Rigidbody>().isKinematic = false;
            grabbedObject = null;
            isGrabbing = false;
        }
    }

    void UpdateObjectPosition()
    {
        if (grabbedObject != null)
        {
            Vector3 newPosition = transform.position + transform.forward * grabDistance;
            grabbedObject.GetComponent<Rigidbody>().MovePosition(newPosition);
        }
    }
}

Bước 3: Điều chỉnh các đối tượng có thể lấy được của bạn

  1. Gắn thẻ các đối tượng có thể lấy được của bạn:
    • Gắn thẻ đồ vật bạn muốn lấy với thẻ "Grabbable".

Đó là nó! Bây giờ, khi bạn nhấn phím "G", tập lệnh sẽ kiểm tra xem có vật thể nào có thể lấy được ở phía trước máy ảnh hay không và lấy hoặc thả nó ra.

Lời khuyên:

  • Tùy chỉnh khóa hoặc phương thức nhập bằng cách sửa đổi điều kiện 'Input.GetKeyDown'.
  • Điều chỉnh biến 'grabDistance' để đặt khoảng cách bạn có thể lấy đồ vật.
  • Nâng cao tập lệnh bằng cách thêm các tính năng bổ sung như xoay đối tượng hoặc đánh dấu.

Phần kết luận

Hướng dẫn đơn giản này cung cấp nền tảng cho việc lấy đối tượng trong Unity. Vui lòng mở rộng và sửa đổi tập lệnh dựa trên nhu cầu cụ thể và cơ chế trò chơi của bạn.

Bài viết được đề xuất
Tạo các đối tượng tương tác trong Unity
Tương tác với các đối tượng trong trò chơi Unity
Di chuyển các đối tượng bằng đầu vào cuộn trong Unity
Tạo các lớp và đối tượng trong mã Unity
Tạo GrabPack trong Unity Lấy cảm hứng từ Poppy Playtime
Thực hiện các tương tác động học trong Unity
Triển khai nhóm đối tượng trong Unity