Mathf.Clamp
클램프는 값이 특정 범위를 벗어나지 않도록 제한 ( Clamp ) 하는 함수이다.
최소값보다 작으면 최소값을 , 최대값보다 크면 최대값을 반환하는 함수인 것이다.
Mathf.Clamp(value, min, max)
사용하면 좋을 상황
- 플레이어 이동 범위 제한
└ 캐릭터가 화면 밖으로 나가지 않게 X / Y 좌표 제한 - 체력 ( HP ) 범위 조절
└ 0 보다 작아지지 않게 , 최대 체력 이상으로 올라가지 않게 제한 - UI 슬라이더 값 보정
└ 계산 중 값이 0 ~ 1 을 넘어가지 않게 제한 - 입력 값 / 감속 / 가속 제어
└ 입력 세기나 속도를 일정 범위로 유지
예시 코드
▼ 플레이어 이동 제한
using UnityEngine;
public class PlayerMove : MonoBehaviour
{
public float moveSpeed = 5f;
public float minX = -8f;
public float maxX = 8f;
void Update()
{
float input = Input.GetAxisRaw("Horizontal");
Vector3 pos = transform.position;
pos.x += input * moveSpeed * Time.deltaTime;
pos.x = Mathf.Clamp(pos.x, minX, maxX); // X 범위 제한
transform.position = pos;
}
}
▼ 체력 값 제한
currentHP = Mathf.Clamp(currentHP, 0, maxHP);
주의할 점
- min 값이 max보다 크면 결과가 예측 불가하다. (항상 min ≤ max 조건 보장해야 한다)
- 값은 변경되지 않고 반환만 된다
└ value = Mathf.Clamp(value, min, max); 형태로 대입해야 한다 - 정수형, 실수형 모두 지원
└ Mathf.Clamp(int value, int min, int max)
└ Mathf.Clamp(float value, float min, float max)
정리
Clamp는 값을 일정 범위 내로 고정 시켜주는 안전한 제한 함수이다.
'🧊Unity Basic > 수학&보정함수' 카테고리의 다른 글
| Interpolation (0) | 2025.10.19 |
|---|---|
| Lerp & MoveTowards (0) | 2025.10.19 |