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.