Hiển thị văn bản khi chạm vào đối tượng trong Unity

Chào mừng bạn đến với hướng dẫn Unity này, nơi bạn sẽ tìm hiểu cách làm cho văn bản xuất hiện khi chạm vào một đối tượng trong trò chơi của mình. Sự tương tác đơn giản này có thể thêm yếu tố hấp dẫn vào dự án của bạn. Hướng dẫn này sẽ hoạt động trên cả thiết bị di động và máy tính để bàn.

Bước 1: Tạo dự án Unity

Nếu bạn chưa làm vậy, hãy bắt đầu bằng cách mở Unity và tạo dự án 3D mới. Đảm bảo bạn đã cài đặt các tài sản cần thiết cho môi trường phát triển ưa thích của mình.

Bước 2: Nhập đối tượng 3D

Nhập đối tượng 3D vào cảnh của bạn để đại diện cho vật phẩm mà người chơi sẽ tương tác. Đây có thể là hình khối, hình cầu hoặc bất kỳ vật thể nào khác phù hợp với trò chơi của bạn.

Bước 3: Thêm Collider

Đính kèm một thành phần máy va chạm vào đối tượng 3D của bạn. Điều này sẽ cho phép nó phát hiện khi các đối tượng khác tương tác với nó. Các loại máy va chạm phổ biến bao gồm Máy va chạm hộp, Máy va chạm hình cầu hoặc Máy va chạm lưới, tùy thuộc vào hình dạng đối tượng của bạn.

Bước 4: Tạo Canvas và Văn bản

Tạo UI Canvas bằng cách nhấp chuột phải vào phân cấp cảnh, chọn Giao diện người dùng rồi chọn Canvas. Bên trong khung vẽ, hãy thêm thành phần Văn bản sẽ hiển thị thông báo của bạn.

Bước 5: Đặt Canvas thành Không gian thế giới

Thay đổi Chế độ kết xuất của thành phần Canvas thành 'World Space'. Điều này cho phép canvas tồn tại trong không gian 3D của trò chơi của bạn.

Bước 6: Định vị Canvas

Điều chỉnh vị trí của khung vẽ sao cho thẳng hàng với đối tượng 3D của bạn. Điều này đảm bảo rằng văn bản xuất hiện gần đối tượng khi được kích hoạt.

Bước 7: Viết kịch bản

Viết script sẽ phát hiện khi người chơi tương tác với đối tượng. Khi tương tác xảy ra, hãy kích hoạt Canvas và đặt nội dung của thành phần Văn bản. Kiểm tra tập lệnh ví dụ bên dưới:

'ObjectInteraction.cs'

using UnityEngine;
using UnityEngine.UI;

public class ObjectInteraction : MonoBehaviour
{
    public GameObject canvas;
    public Text displayText;

    private void Start()
    {
        canvas.SetActive(false);
    }

    private void Update()
    {
        // Use inline conditional to determine input position based on platform
        Vector3 inputPosition = (Input.touchCount > 0) ? Input.GetTouch(0).position : (Vector3)Input.mousePosition;

        // Raycast to determine if the touch or click hits the object
        Ray ray = Camera.main.ScreenPointToRay(inputPosition);

        RaycastHit hit;
        if (Physics.Raycast(ray, out hit) && hit.collider.gameObject == gameObject)
        {
            // Activate the canvas and set the text
            canvas.SetActive(true);
            displayText.text = "Your message here!";
        }
    }
}

Bước 8: Thêm tập lệnh vào đối tượng

Đính kèm tập lệnh C# vào đối tượng 3D của bạn, tập lệnh này sẽ xử lý logic tương tác và gán tất cả các biến cần thiết.

Bước 9: Kiểm tra trò chơi của bạn

Chạy trò chơi của bạn và kiểm tra sự tương tác. Văn bản sẽ xuất hiện khi bạn nhấp hoặc chạm vào đối tượng được chỉ định.

Bài viết được đề xuất
Triển khai nhóm đối tượng trong Unity
Tạo trò chơi lấy cảm hứng từ Pac-Man trong Unity
Tạo Trình mô phỏng săn bắn 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
Thực hiện các tương tác động học trong Unity
Thêm mục nhập của người chơi vào ô tô trong Unity