Giới hạn vùng di chuyển (Clamp)
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.