
1. 최대,최솟값 Max / Min
int damage = 10 - 15;
damage = Mathf.Max(damage, 1);Max()는 두 수 중큰 값을 반환합니다.
예를 들어, 공격력이 음수나 0이 되는 것을 방지하기 위해 Max함수를 사용하여 이를 제한할 수 있습니다.
int magazine = 0;
int ammo = 10;
int needAmmo = 15;
magazine = Mathf.Min(ammo, needAmmo);Min()은 두 수 중 작은 값을 반환합니다.
재장전 로직을 만들 때 남아있는 총알의 수와 필요한 총알의 수 중 작은 값을 사용해야 될 때 사용할 수 있습니다.
2.절댓값 Abs
float distance = -50f;
distance = Mathf.Abs(distance);Abs()는 수의 절댓값을 반환합니다.
거리를 계산하는 등 절댓값이 필요할 때 사용합니다.
3. 올림, 내림, 반올림 Ceil / Floor / Round
float value = 4.4f;
value = Mathf.Ceil (value); // 5f
value = Mathf.Floor (value); // 4f
value = Mathf.Round(value); // 4f소수점을 다룰 때 사용합니다.
Ceil()은 수를 올리고 Floor()는 수를 내립니다. Round()는 수를 반올림합니다. 세 함수 모두 float 타입을 반환합니다.
Round()는 가장 가까운 짝수로 반올림 됩니다.
ex) Round(4.5) ==> 4 , Round(5.5) ==> 6
4. 범위 내 고정 Clamp
// Clamp(검사할 값, 최솟값, 최댓값)
int currentHp = 150;
int maxHp = 100;
currentHp = Mathf.Clamp(currentHp, 0, maxHp); // 100Clamp()를 사용하면 현재 값을 범위 내에 고정할 수 있습니다.
체력 등의 최솟값과 최댓값이 존재하는 값을 다룰 때 사용할 수 있습니다.
5. 선형보간 Lerp
float start = 0f;
float end = 10f;
float result = Mathf.Lerp(start, end, 0.5f); // 5선형보간은 두 수의 사이에 위치한 값을 반환합니다. 위 예의 경우 0.5를 넣었기 때문에 두 수의 0.5(50%)에 해당하는 값을 반환합니다.
transform.position =
Vector3.Lerp(transform.position, targetPosition, Time.deltaTime * speed);주로 위처럼 특정 지점으로 부드럽게 이동할 때 사용할 수 있습니다.
6. 근사값 Approximately
float a = 1.0f;
float b = 10.0f / 10.0f;
if (Mathf.Approximately(a, b))
{
// 처리
}컴퓨터는 소수를 정확하게 비교할 수 없습니다. 컴퓨터가 소수를 표현하는 방식인 부동 소수점 방식과 저장 공간의 한계로 인하여 수학적으로는 같은 값이어도 컴퓨터공학적으로는 다른 값을 가질 수 있습니다.
그렇기에, Approximately() 함수를 사용하여 두 수가 같은 지를 비교하는 게 아닌 두 수의 차이가 작은 오차범위 안에 있는 지를 판단하여 이를 해결할 수 있습니다.



