Di chuyển trên nền tảng động

Tags:
Movement
Player
Physics
Platformer

C# Code

using UnityEngine;

// Gắn script này vào Player
public class MovingPlatformInteractor : MonoBehaviour
{
    private Transform originalParent;

    void Start()
    {
        originalParent = transform.parent; // Lưu lại parent ban đầu (nếu có)
    }

    private void OnCollisionEnter(Collision collision)
    {
        // Kiểm tra nếu va chạm với một đối tượng có tag "MovingPlatform"
        if (collision.gameObject.CompareTag("MovingPlatform"))
        {
            // Đặt player làm con của platform để di chuyển cùng nó
            transform.SetParent(collision.transform);
        }
    }

    private void OnCollisionExit(Collision collision)
    {
        if (collision.gameObject.CompareTag("MovingPlatform"))
        {
            // Trả player về trạng thái ban đầu khi rời khỏi platform
            transform.SetParent(originalParent);
        }
    }
}

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 đó.

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

Giữ một đối tượng trong một vùng hình chữ nhật xác định bằng cách sử dụng hàm Mathf.Clamp() để giới hạn giá trị tọa độ x và y.

Movement
Physics
Player
Boundaries

Sử dụng Tilemap Collider 2D và Composite Collider 2D để tạo ra một vùng đi lại duy nhất cho nhân vật, ngăn họ đi xuyên tường hoặc ra khỏi bản đồ.

2D
Movement
Player
Physics
Tilemap

Cho phép nhân vật 2D di chuyển lên và xuống khi tiếp xúc với một đối tượng được đánh dấu là 'Ladder'.

2D
Movement
Player
Gameplay
Platformer

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

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

Cho phép người chơi di chuyển nhân vật đến một vị trí trên mặt đất bằng cách chạm vào điểm đó trên màn hình. Sử dụng Raycast để xác định vị trí trong không gian 3D.

Mobile
3D
Movement
Player
Input

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

Tạo một joystick ảo có thể di chuyển bằng cách kéo thả trên màn hình cảm ứng. Yêu cầu 2 đối tượng Image UI cho background và handle của joystick.

Mobile
UI
Input
Player
Movement

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