Tạo Bộ điều khiển góc nhìn thứ nhất trong Unity

Hướng dẫn này sẽ hướng dẫn bạn xây dựng một bộ điều khiển góc nhìn thứ nhất đơn giản trong Unity. Bộ điều khiển góc nhìn thứ nhất cho phép người chơi khám phá thế giới 3D với chuyển động mượt mà và xoay camera. Chúng ta sẽ sử dụng tập lệnh C# cơ bản và thành phần CharacterController tích hợp của Unity.

1. Thiết lập bối cảnh

Bắt đầu bằng cách thiết lập môi trường bối cảnh cơ bản cho bộ điều khiển góc nhìn thứ nhất của bạn:

  1. Trong Unity, tạo một cảnh 3D mới.
  2. Vào GameObject > 3D Object > Plane để tạo mặt đất.
  3. Điều chỉnh kích thước của máy bay sao cho đủ lớn để người chơi có thể di chuyển xung quanh.
  4. Vào GameObject > 3D Object > Cube để thêm chướng ngại vật hoặc tường để tương tác.

2. Thêm Đối tượng Người chơi

Để biểu diễn người chơi, chúng ta sẽ sử dụng một đối tượng con nhộng:

  • Vào GameObject > 3D Object > Capsule để thêm một capsule vào cảnh.
  • Đặt viên nang hơi cao hơn mặt đất (ví dụ: Vị trí = (0, 1, 0)).
  • Đổi tên capsule thành Player.
  • Xóa thành phần Capsule Collider vì CharacterController sẽ xử lý va chạm.
  • Thêm thành phần CharacterController vào đối tượng Player bằng cách chọn Player, sau đó nhấp vào Add Component trong Inspector và tìm kiếm CharacterController.

3. Viết kịch bản điều khiển góc nhìn thứ nhất

Bây giờ, chúng ta hãy tạo một tập lệnh để xử lý chuyển động của người chơi và xoay camera:

  1. Trong cửa sổ Project, nhấp chuột phải và chọn Create > C# Script. Đặt tên là FirstPersonController.
  2. Đính kèm tập lệnh vào đối tượng Player bằng cách kéo nó từ cửa sổ Project vào Player trong Hierarchy.

Mở tập lệnh và thay thế nội dung bằng mã sau:

using UnityEngine;

public class FirstPersonController : MonoBehaviour
{
    public float moveSpeed = 5f;
    public float mouseSensitivity = 2f;
    public float gravity = -9.81f;

    private CharacterController controller;
    private Vector3 velocity;
    private Transform cameraTransform;

    void Start()
    {
        controller = GetComponent();
        cameraTransform = Camera.main.transform;
        cameraTransform.position = new Vector3(transform.position.x, transform.position.y + 1.5f, transform.position.z);
        cameraTransform.parent = transform; // Attach camera to player
    }

    void Update()
    {
        // Player movement
        float moveX = Input.GetAxis("Horizontal") * moveSpeed;
        float moveZ = Input.GetAxis("Vertical") * moveSpeed;
        Vector3 move = transform.right * moveX + transform.forward * moveZ;

        controller.Move(move * Time.deltaTime);

        // Apply gravity
        if (controller.isGrounded && velocity.y < 0)
        {
            velocity.y = -2f;
        }
        velocity.y += gravity * Time.deltaTime;
        controller.Move(velocity * Time.deltaTime);

        // Camera rotation
        float mouseX = Input.GetAxis("Mouse X") * mouseSensitivity;
        float mouseY = Input.GetAxis("Mouse Y") * mouseSensitivity;

        transform.Rotate(Vector3.up * mouseX);
        cameraTransform.Rotate(Vector3.left * mouseY);
    }
}

4. Gắn máy ảnh

Đối với góc nhìn thứ nhất, camera cần được gắn vào người chơi:

  • Chọn Camera chính trong Phân cấp.
  • Đặt nó cao hơn một chút so với đối tượng Người chơi (ví dụ: Y = 1,5).
  • Kéo Camera vào đối tượng Player trong Hierarchy để biến nó thành đối tượng con của Player. Điều này sẽ khiến nó theo dõi chuyển động và vòng quay của người chơi.

5. Cấu hình đầu vào

Trình quản lý đầu vào của Unity sử dụng các tên trục được xác định trước như "Ngang" và "Dọc" để di chuyển, cũng như "Chuột X" và "Chuột Y" để nhập bằng chuột. Các tên này được cấu hình tự động, nhưng bạn có thể điều chỉnh độ nhạy trong Chỉnh sửa > Cài đặt dự án > Trình quản lý đầu vào.

6. Kiểm tra bộ điều khiển

Bây giờ bộ điều khiển góc nhìn thứ nhất đã sẵn sàng, hãy nhấn nút phát để kiểm tra:

  • Sử dụng W, A, S, D để di chuyển người chơi về phía trước, phía sau và sang ngang.
  • Di chuyển chuột để xoay camera và quan sát xung quanh.
  • Đảm bảo lực hấp dẫn hoạt động bằng cách bước ra khỏi bất kỳ vật thể nâng lên nào để xem người chơi có ngã tự nhiên không.

7. Nâng cao Bộ điều khiển

Bạn có thể cải thiện bộ điều khiển góc nhìn thứ nhất bằng cách thêm:

  • Chức năng chạy nước rút bằng cách tăng tốc độ di chuyển khi giữ phím Shift.
  • Logic nhảy bằng cách phát hiện khi người chơi nhấn phím cách và áp dụng vận tốc hướng lên.
  • Cơ chế trèo hoặc cúi người để người chơi có những tương tác phức tạp hơn với môi trường.

Phần kết luận

Với bộ điều khiển góc nhìn thứ nhất cơ bản này, giờ đây bạn có một thiết lập người chơi chức năng để khám phá môi trường 3D. Bằng cách tùy chỉnh và mở rộng tập lệnh, bạn có thể thêm nhiều tính năng và tương tác hơn để phù hợp với nhu cầu của trò chơi.