본문 바로가기

▶Programming/Unity

Mathf

수학에 관한 함수..많으 쓰임.


Mathf.Atan(float f): f에 대한 아크 탄젠트 값을 반환. 언제 쓰는지 모름.


Mathf.Deg2Rad:  디그리(각도)를 라디안으로 바꿔주는 함수

Mathf.Rad2Deg: 라디안을 디그리로 바꿔주는 함수


실제 라디안의 값을 float로 구하면 그리 크지 않다. 2파이가 360도니까..(1파이는 3.14616~~~~)

이 값을 폭발적으로 증가시켜주는게 Mathf.Rad2Deg이다


적용방법은 라디안값 *(곱하기) Mathf.Rad2Deg 하면 된다.


Mathf.Atan2(float y, float x) :Returns the angle in radians whose Tan is y/x.


두 float 값의 탄젠트 값..리턴은 앵글인데.. 앵글도 float형


Mathf.Clamp(float f,int min, int Max): f이 입력되면 min과 max 의 사이에 있는 int 값이 출력

만약 f가 min과 max 사이를 벗어난 값이라면 둘 중에 가까운 값으로 출력 float도 가능(min과 max)사이에만 있다면...

내 생각엔 회전제한이나 각도 제한..탱크의 포신 각도 제한 등등에 사용 할 것 같다. 


아래는 예이다.

        Debug.Log(Mathf.Clamp(4, 1, 5));  ->4이 출력.

        Debug.Log(Mathf.Clamp(2, 1, 3));  -> 2가 그대로 출력. 여기서 중요한건 1과3 사이의 값이 입력되면 그 입력했던 값이 그대로 출력됨을 알 수 있다.

        Debug.Log(Mathf.Clamp(0, 1, 3)); ->1

        Debug.Log(Mathf.Clamp(10, 1, 3)); ->5

        Debug.Log(Mathf.Clamp(-20, 1, 3)); ->1

        Debug.Log(Mathf.Clamp(1.3f, 1, 3)); ->1.3f

 
 Mathf.LerpAngle

float currYAngle = Mathf.LerpAngle(tr.eulerAngles.y,  target.eulerAngles.y, float T);

tr의 회전각에서 target의 회전각까지 T시간에 따라 회전하는 값을 float로 저장시켜줌.