유니티 개발을 하다보면 숫자를 계산하고 변경해야되는 일이 빈번합니다. 항상 그거 뭐였지 하면서 찾아보게 되는데 한번에 확인하려고 작성합니다.
Unity 개발할때 자주 사용하는 Mathf 함수
0. 절댓값
Mathf.Abs(Float num);-> Abs는 어떤 값이든 양수로 반환 ! ex) Mathf.Abs(-1); // 값 : 1
1. 최대/최솟값
Mathf.Clamp(float num, float min, float max); Mathf.Clamp01(float num);-> Clamp는 num 값을 min, max에 맞추어 재조정해줍니다. min보다 작으면 min값을, max 값보다 크면 max값을 반환합니다.
ex)
Mathf.Clamp(0f, 3.1f, 3f);; // 값 : 3
-> Clamp01은 어떤 값을 넣어도 Min : 0 Max : 1사이의 값을 반환해줍니다.
ex)
Mathf.Clamp01(3f); // 값 : 1
Mathf.Clamp01(-100f); // 값 : 0
2. 올림/내림/반올림
Mathf.Ceil(float num); Mathf.Floor(float num); Mathf.Round(float num);
- Ceil 숫자 올림 , Floor 숫자 내림 , Round 숫자 반올림
함수 뒤에 ToInt를 붙여주면 반환 값이 int가 됩니다.
ex)
3. 근사 (Approximately)
Mathf.Approximately(float a, float b);
- 부동 소수점 float a가 float b와 같은지 (근사한지) 비교합니다. float은 부동 소수점이기 때문에 데이터들이 이리저리 가공되거나 특히, 물리를 사용하여 물체를 요리조리 가지고 놀다가 위치나 속력 같은 친구들 가지고 == 연산을 하게 되면 일치하지 않을 때가 있습니다. 이럴 때를 대비해서 float 데이터들은 Approximately를 이용하여 비교해야 합니다. 예를 들어 1.8f == 18.0f / 10.0f가 true를 반환하지 않을 수도 있습니다.