Giới hạn vùng di chuyển (Clamp)

Tags:
Movement
Physics
Player
Boundaries

C# Code

using UnityEngine;

public class MovementLimiter : MonoBehaviour
{
    public Vector2 minBounds;
    public Vector2 maxBounds;

    void Update()
    {
        // Lấy vị trí hiện tại
        Vector3 currentPosition = transform.position;

        // Giới hạn tọa độ x và y
        float clampedX = Mathf.Clamp(currentPosition.x, minBounds.x, maxBounds.x);
        float clampedY = Mathf.Clamp(currentPosition.y, minBounds.y, maxBounds.y);

        // Cập nhật lại vị trí của đối tượng
        transform.position = new Vector3(clampedX, clampedY, currentPosition.z);
    }

    // Vẽ vùng giới hạn trong Editor để dễ hình dung
    void OnDrawGizmosSelected()
    {
        Gizmos.color = Color.yellow;
        Vector3 center = new Vector3((minBounds.x + maxBounds.x) / 2, (minBounds.y + maxBounds.y) / 2, 0);
        Vector3 size = new Vector3(maxBounds.x - minBounds.x, maxBounds.y - minBounds.y, 0);
        Gizmos.DrawWireCube(center, size);
    }
}

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.

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ú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

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

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 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

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