Vật thể có thể đẩy (Pushable Objects)

Tags:
Physics
Interaction
Player
Gameplay

C# Code

using UnityEngine;

// Gắn script này vào Player
public class ObjectPusher : MonoBehaviour
{
    public float pushForce = 5.0f;

    // Hàm này được gọi khi CharacterController va chạm với một đối tượng khác
    void OnControllerColliderHit(ControllerColliderHit hit)
    {
        Rigidbody body = hit.collider.attachedRigidbody;

        // Kiểm tra xem đối tượng có Rigidbody hay không và nó không phải là kinematic
        if (body == null || body.isKinematic)
        {
            return;
        }

        // Không đẩy các vật thể ở bên trên chúng ta
        if (hit.moveDirection.y < -0.3f)
        {
            return;
        }

        // Tính toán hướng đẩy
        Vector3 pushDirection = new Vector3(hit.moveDirection.x, 0, hit.moveDirection.z);

        // Tác động lực lên Rigidbody của vật thể
        body.velocity = pushDirection * pushForce;
    }
}

Cho phép người chơi đẩy các vật thể có Rigidbody khi di chuyển vào chúng. Lực đẩy có thể điều chỉnh được.

Bình luận (0)

Bạn cần đăng nhập để có thể bình luận.

Chưa có bình luận nào. Hãy là người đầu tiên!

Bài viết liên quan

Tạo một viên đạn (projectile) tại một điểm và bắn nó đi theo một hướng xác định. Thường dùng cho nhân vật hoặc kẻ địch.

Gameplay
Player
Spawning
Physics

Một hệ thống linh hoạt cho phép người chơi tương tác với nhiều loại đối tượng (cửa, vật phẩm, NPC, công tắc) chỉ bằng một nút bấm (E) khi ở trong tầm, kèm hiển thị gợi ý trên màn hình.

Interaction
Gameplay
Player
Architecture
Interface
UI

Một hệ thống cho phép người chơi tương tác với nhiều loại đối tượng (cửa, NPC, vật phẩm) chỉ bằng một nút bấm khi ở trong tầm.

Gameplay
Interaction
Player
Architecture
Interface

Cho phép người chơi nhặt các vật thể có Rigidbody, giữ chúng trước mặt và ném đi bằng một lực.

Physics
Rigidbody
Interaction
Player

AI sẽ bắn đạn về phía người chơi khi họ ở trong tầm tấn công và có một khoảng thời gian chờ (cooldown) giữa mỗi lần bắn.

AI
Gameplay
Spawning
Physics

AI sẽ phát hiện người chơi trong một phạm vi nhất định và bắt đầu di chuyển về phía họ. Khi người chơi ra khỏi phạm vi, AI sẽ dừng lại.

AI
Movement
Gameplay
Player

Phát ra các âm thanh bước chân khác nhau tùy thuộc vào loại bề mặt vật liệu (qua Tag) mà người chơi đang đi trên đó, ví dụ: cỏ, gỗ, đá.

Audio
Physics
Player
Effects

Cho phép nhân vật thực hiện một cú lướt nhanh theo hướng di chuyển hiện tại. Có cooldown để tránh lạm dụng.

Player
Movement
Gameplay
Coroutine

Sử dụng Input System mới của Unity để di chuyển nhân vật 2D hoặc 3D một cách hiệu quả và linh hoạt.

2D
3D
Input
Gameplay
Player

Giúp nhân vật đứng vững trên các nền tảng di chuyển (moving platforms) bằng cách tạm thời đặt nhân vật làm con của nền tảng đó.

Movement
Player
Physics
Platformer