유니티(Unity) 보간(interpolation)함수 종류 및 예시

반응형

유니티(Unity) 보간(interpolation)함수 종류 및 예시

Mathf.Lerp
주어진 두 값 사이를 선형적으로 보간(interpolate)하는 데 사용됩니다. t는 0과 1 사이의 값을 가지며 t가 0이면 a를 반환하고 t가 1이면 b를 반환합니다. t가 0과 1 사이에 있으면 a와 b 사이에서 보간한 값을 반환합니다.

float a = 0f;
float b = 10f;
float t = 0.5f;
float result = Mathf.Lerp(a, b, t);  
//result는 5f입니다.

https://docs.unity3d.com/ScriptReference/Mathf.Lerp.html


Mathf.SmoothStep
Mathf.Lerp와 유사하게 주어진 값 사이를 보간하지만  부드러운 단계적 보간을 수행합니다. 시작에서 빨라지고 끝에서 느려집니다. 물체의 가속과 감속, 자연스러운 애니메이션, 페이딩, 기타에 사용할수있습니다.
https://docs.unity3d.com/ScriptReference/Mathf.SmoothStep.html


Vector3.Lerp
두 벡터 간의 선형 보간을 수행하는 함수입니다. t의 값이 0이면 시작 벡터를 반환하고 1이면 끝 벡터를 반환합니다. t가 0과 1 사이일 때 시작 벡터와 끝 벡터 사이에서 보간한 벡터를 반환합니다.

Vector3 start = new Vector3(0, 0, 0);
Vector3 end = new Vector3(10, 10, 10);
float t = 0.5f;
Vector3 result = Vector3.Lerp(start, end, t);  
//result는 (5, 5, 5)입니다.

https://docs.unity3d.com/ScriptReference/Vector3.Lerp.html



Vector3.MoveTowards
현재 위치에서 목표 위치로 이동시킵니다. maxDistanceDelta 매개변수로 이동 속도를 제어합니다.

float step = speed * Time.deltaTime ; 
transform.position = Vector3.MoveTowards (transform.position, target.position, step); 
 
https://docs.unity3d.com/ScriptReference/Vector3.MoveTowards.html
 
 
기타
Mathf.LerpAngle
Mathf.InverseLerp
Mathf.SmoothDamp
Mathf.PingPong
Vector3.SmoothDamp
Vector3.Slerp

반응형

댓글

Designed by JB FACTORY