개발일지
article thumbnail
Published 2023. 3. 28. 12:58
[Unity] Mathf 클래스 프로그래밍/UNITY

#Mathf

Unity에서는 수학 함수를 제공하는 Mathf 클래스를 제공합니다. Mathf 클래스는 Unity에서 수학적인 계산을 수행하는 데에 매우 유용합니다. 이를 사용하여, 게임 오브젝트의 이동, 회전, 크기 조절 등을 구현할 수 있습니다. 또한, Mathf 클래스를 이용하여 수학적인 연산을 수행하는 것은 게임 개발에서 물리적인 연산, 충돌 검사 등을 수행하는 데에도 매우 유용합니다.

이번에는 주요한 함수들을 살펴보겠습니다.


#값 제한 및 반복

값을 특정 범위로 제한하거나 특정 범위 내에서 반복해야 할 때 시간을 절약할 수 있습니다.

 

#Max, Min

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

주어진 값 중 최솟값 또는 최댓값을 반환합니다. 예를 들어, Mathf.Min(5, 10)는 5를 반환합니다.

 

#Clamp

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

주어진 값이 최솟값과 최댓값 사이에 있는지 확인하고, 벗어나면 최솟값 또는 최댓값으로 반환합니다. 예를 들어, Mathf.Clamp(10, 0, 5)는 5를 반환합니다.

 

#Clamp01

Mathf.Clamp01(float num)

수는 주어진 값이 0과 1 사이에 있는지 확인하고, 벗어나면 최솟값인 0 또는 최댓값인 1로 반환합니다. 이 함수는 특히 퍼센트 값을 다룰 때 유용합니다.


#보간

Unity의 보간 함수를 사용하면 주어진 두 점 사이의 값을 계산할 수 있습니다.

 

#Lerp

Mathf.Lerp(float a, float b, float t)

Mathf.Lerp() 함수는 start와 end 값을 t에 따라 보간하여 그 사이 값을 반환합니다. 만약 t가 0이면 start 값을 반환하고, t가 1이면 end 값을 반환합니다. 그리고 t가 0과 1 사이의 값이면, start와 end 값 사이에서 t에 해당하는 지점 값을 반환합니다.

예를 들어, Mathf.Lerp(0, 10, 0.5f)를 호출하면, 0과 10 사이에서 보간 계수가 0.5f인 값인 5를 반환합니다.

healthBar.fillAmount = Mathf.Lerp(healthBar.fillAmount, currentHealth, 5 * Time.deltaTime);

Mathf.Lerp() 함수는 보간 계수 t를 이용하여 값을 보관하므로, 보간 계수 t 값을 조절하여 값을 부드럽게 변화시키는 애니메이션 효과 등에 활용될 수 있습니다.


#연산

 

#Abs

Mathf.Abs(float num)

주어진 값의 절댓값을 반환합니다. 예를 들어, Mathf.Abs(-5)는 5를 반환합니다.

 

#Sqrt

Mathf.Sqrt(float num)

주어진 값의 제곱근을 반환합니다. 예를 들어, Mathf.Sqrt(16)는 4를 반환합니다.

 

#Sign

Mathf.Sign(float num)

주어진 값의 부호를 반환합니다. 값이 양수면 1, 음수면 -1, 0이면 0을 반환합니다. 예를 들어, Mathf.Sign(-5)는 -1을 반환합니다.

 

#Round

Mathf.Round(float num)

주어진 값을 반올림하여 정수로 반환합니다. 예를 들어, Mathf.Round(5.7f)는 6을 반환합니다.


이 외에도 다양한 함수들이 있지만 자주 사용하는 함수들만 다루었다.

'프로그래밍 > UNITY' 카테고리의 다른 글

[Unity] UI Toolkit 커스텀 토글  (0) 2023.10.24
[Unity] Timeline  (0) 2023.08.05
[Unity] Vector에 대하여  (0) 2023.04.28
[Unity] State Machine을 이용한 FSM  (4) 2023.04.18
[Unity] 유니티 애니매이션 블렌드 트리  (0) 2023.03.11
profile

개발일지

@damin06

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!