Unity

Unity Vector3.Lerp 선형보간으로 부드럽게 움직이게 하기

CommitGuy 2024. 11. 12. 08:34

유니티에서 캐릭터를 움직이거나 물체를 다른 위치로 이동시키거나 할때 

끊김 없이 부드럽게 움직이게 하는 방법중 하나가 Vector3.Lerp 함수 입니다.

 

이는 선형보간이라는 방법을 사용하는건데

두 벡터 간 사이에 위치한 값을 추정하기 위해 직선 거리에 따라 선형적 계산을 하는 방법입니다

 

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

 

Unity - Scripting API: Vector3.Lerp

Interpolates between the points a and b by the interpolant t. The parameter t is clamped to the range [0, 1]. This is most commonly used to find a point some fraction of the way along a line between two endpoints (e.g. to move an object gradually between t

docs.unity3d.com

 

Vector3.Lerp는 3가지 파라미터값을 가집니다

첫번째 시작하는 포인트, 두번째 끝나는 포인트, 세번째 이 두 포인트 사이에 얻고 싶은 값의 위치(이는 비율로 중간 값을 얻고 싶다면 0.5를 넣습니다)

 

저의 경우 최근 캐릭터 손을 움직이게 하기 위해 사용했는데

rightArmTarget.localPosition = Vector3.Lerp(rightArmTarget.localPosition, rightArmEndPosForCutting, Time.deltaTime * cuttingSpeed);

오른쪽 손의 local position을 지정한 rightArmEndPosForCutting(Vector3) 지점으로 이동시키는 함수를 작성했었습니다