Bộ điều khiển nhân vật Cách thêm khả năng đẩy các vật cứng trong Unity

Trong hướng dẫn này, chúng tôi sẽ cải tiến tập lệnh Unity FPS Controller để cho phép nhân vật đẩy các vật cứng trong cảnh (tập lệnh bên dưới sẽ hoạt động với bất kỳ bộ điều khiển nào, miễn là nó có gắn Thành phần CharacterController). Tập lệnh này có thể mang lại cảm giác chân thực hơn cho trò chơi của bạn bằng cách cho phép người chơi tương tác với các vật thể và môi trường động.

Bước 1: Tạo tập lệnh mới

  • Tạo tập lệnh C# mới trong dự án Unity của bạn. Bạn có thể đặt tên nó là "CharacterPushController".

Bước 2: Sao chép tập lệnh được cung cấp

  • Sao chép mã bên dưới vào tập lệnh mới được tạo. Bạn có thể điều chỉnh biến 'pushPower' để kiểm soát cường độ đẩy. Ngoài ra, bạn có thể muốn tùy chỉnh các điều kiện để áp dụng lực đẩy dựa trên logic của trò chơi.

CharacterPushController.cs

using UnityEngine;

public class CharacterPushController : MonoBehaviour
{
    // Adjust this variable to control the strength of the push
    public float pushPower = 2.0f;

    void OnControllerColliderHit(ControllerColliderHit hit)
    {
        Rigidbody body = hit.collider.attachedRigidbody;

        // No rigidbody or kinematic rigidbody
        if (body == null || body.isKinematic)
        {
            return;
        }

        // Avoid pushing objects below the character
        if (hit.moveDirection.y < -0.3)
        {
            return;
        }

        // Calculate push direction from move direction,
        // pushing only to the sides, not up and down
        Vector3 pushDir = new Vector3(hit.moveDirection.x, 0, hit.moveDirection.z);

        // Apply the push
        body.velocity = pushDir * pushPower;
    }
}

Bước 3: Đính kèm tập lệnh

Bước 4: Kiểm tra

  • Chơi cảnh và kiểm tra khả năng đẩy vật thể cứng của bộ điều khiển nhân vật với sự trợ giúp của tập lệnh mới tạo.

Bước 5: Điều chỉnh

  • Điều chỉnh the 'pushPower' để đạt được hành vi mong muốn trong trò chơi của bạn.
Bài viết được đề xuất
Thêm hỗ trợ nhảy đôi vào bộ điều khiển nhân vật nền tảng 2D trong Unity
Hướng dẫn sử dụng đèn pin cho Unity
Tạo chuyển động của người chơi trong Unity
Unity Cách tạo điều khiển cảm ứng trên thiết bị di động
Bộ điều khiển trình phát RTS và MOBA cho Unity
Bộ điều khiển ô tô cho Unity
Bộ điều khiển máy bay cho Unity