(주) 망나니 힘집
[UNITY] MoveTowards() / SmoothDamp() / Lerp() / Slerp() 본문
<이번시간은 MoveTowards() / SmoothDamp() / Lerp() / Slerp() 이동에 대해서 알아보겠습니다.>
//4가지 함수 모두 VECTOR3 클래스에서 제공하는 이동 함수이다.
//Update() 함수에 넣어야 함.
* MoveTowards() : 등속[일정속도] 이동
// 매개변수는 (현재위치, 목표위치, 속도)로 구성한다.
public class NewBehaviourScript : MonoBehaviour
{
Vector3 target = new Vector3(8, 1.5f, 0);
void Update()
{
transform.position = Vector3.MoveTowards(transform.position, target, 1f);
}
}
>>>오브젝트가 target 위치로 1f 속도로 이동한다.
*SmoothDamp : 부드러운 감속 이동
// 매개변수는 (현재위치, 목표위치, 참조속도, 속도)로 구성한다.
public class NewBehaviourScript : MonoBehaviour
{
Vector3 target = new Vector3(8, 1.5f, 0);
void Update()
{
Vector3 velo = Vector3.zero ; //속도 0 >>> 느린 속도로 target 으로 간다.
//Vector3 velo = Vector3.up * 50 ; // 속도를 위쪽으로 50 >>>위로 붕 뜬 상태로 이동하여 target 의 + 50 떨어진 곳으로 간다.
transform.position = Vector3.SmoothDamp(transform.position, target, ref velo , 1f);
//주의 : 마지막 매개변수에 반비례하여 속도가 증가한다.
//ref : 참조접근-> 실시간으로 바뀌는 값을 적용 가능하다.
}
}
*Lerp : 선형보간, SmoothDamp 보다 감속시간이 길다.
//마지막 매개변수에 비례하여 속도가 증가한다(최대값이 1이다.)
public class NewBehaviourScript : MonoBehaviour
{
Vector3 target = new Vector3(8, 1.5f, 0);
void Update()
{
transform.position = Vector3.Lerp(transform.position, target, 1f);
}
}
>>>target 위치로 이동한다. SmoothDamp 와 비슷한 기능을 한다. 그러나 속도의 반비례, 비례 차이가 있다.
*Slerp : 구면 선형 보간 , 호를 그리며 이동한다.
public class NewBehaviourScript : MonoBehaviour
{
Vector3 target = new Vector3(8, 1.5f, 0);
void Update()
{
transform.position = Vector3.Slerp(transform.position, target, 0.1f);
}
}
>>> 곡선을 그리며, 오브젝트가 target 위치로 이동한다.
<이번시간은 MoveTowards() / SmoothDamp() / Lerp() / Slerp() 이동에 대해서 알아보았습니다.>
<다음시간은 DeltaTime 에 대해서 알아보겠습니다.>
'유니티 최고 > Unity' 카테고리의 다른 글
[UNITY] rigidbody , collider , 재질, 물리재질 (0) | 2022.01.18 |
---|---|
[UNITY] DeltaTime (0) | 2022.01.17 |
[UNITY] 오브젝트 이동 (0) | 2022.01.17 |
[UNITY] 키입력, 버튼, 축 (0) | 2022.01.17 |
[UNITY] 생명 주기 함수 (0) | 2022.01.16 |