본문 바로가기

유니티 3D기본(Roll A Ball)

7. Vector3 이동함수를 이용한 오브젝트 이동

Vector3 클래스에는 기본적으로 제공하는 이동함수가 있습니다.

그중 대표적인 4가지는 다음과 같습니다.

 

일정한 속도로 직선 이동

movetowards(현재위치, 목표위치, 속도)

 

직선이동 & 도착시 감속

SmoothDamp(현재위치, 목표위치, ref 참조속도, 속도)

 

선형보간 이동

Lerp(현재위치, 목표위치, 속도)

 

구면 선형 보간 이동

Slerp(현재위치, 목표위치, 속도)

 

사용예제

public class Move : MonoBehaviour
{
    Vector3 target = new Vector3(8, 1.5f, 0);

    void Update()
    {
        //1. MoveToWards
        transform.position = vector3.movetowards(transform.position, target, 1f);


        //2. SmoothDamp
        
        Vector3 velo = Vector3.zero; //ref 참조 접근 -> 실시간으로 바뀌는 값 적용 가능
        transform.position = Vector3.SmoothDamp(transform.position, target, ref velo, 0.1f); //이놈만 속도가 낮을 수록 빨라짐
        

        //3.Lerp (선형 보간)
        transform.position = Vector3.Lerp(transform.position, target, 1f); 

        //4. SLerp (구면 선형 보간)
        transform.position = Vector3.Slerp(transform.position, target, 1f);
    }  
}

 

Slerp 작동 결과