본문 바로가기

유니티

[Unity] 알아두면 유용한 Mathf 클래스

Mathf 클래스는 삼각 함수, 로그 함수, 기타 함수를 비롯한 일반적인 수학 함수 컬렉션을 제공한다.

 

절대값

Math.Abs(float f)

 

float형 반올림 올림 내림

Mathf.Round(float f)
Mathf.Ceil(float f)
Mathf.Floor(float f)

 

int형 반올림 올림 내림

Mathf.RoundToInt(float f)
Mathf.CeilToInt(float f)
Mathf.FloorToInt(float f)

 

최대값과 최소값

Mathf.Min(float a, float b, ...)
Mathf.Max(float a, float b, ...)

인자는 2개보다 많아도 상관없다.

 

제곱근과 제곱

Mathf.Sqrt(float f)
Mathf.Pow(float f, float p)

Pow(f, p)는 f의 p승을 반환한다.

 

기호

Mathf.Sign(float f)

f가 양수 혹은 0인 경우 1을 반환하고, 음수인 경우 -1을 반환한다.

 

범위 제한

Mathf.Clamp(float value, float min, float max)

value가 min보다 작아지면 min을 반환하고, max보다 커지면 max를 반환한다.

어떤 물체를 고정시킬때 사용하는 연장인 Clamp와 유사한 역할을 하는 것으로 보인다.

 

핑퐁

Mathf.PingPong(float t, float length)

 

0과 length 사이의 값을 왔다갔다 한다. 핑퐁처럼 특정 지점을 반복해서 왔다갔다 하는 경우 유용하다.

 

아래와같은 스크립트를 특정 오브젝트에 붙이고 실행시켜서 x position을 확인해보았다.

void Update()
{
    transform.position = new Vector3(Mathf.PingPong(Time.time, 3), transform.position.y, transform.position.z);
}