06-08 16:14
Notice
Recent Posts
Recent Comments
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
Today
Total
관리 메뉴

(주) 망나니 힘집

[UNITY] MoveTowards() / SmoothDamp() / Lerp() / Slerp() 본문

유니티 최고/Unity

[UNITY] MoveTowards() / SmoothDamp() / Lerp() / Slerp()

군포망나니 2022. 1. 17. 21:48

<이번시간은 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