유니티 일기

Vector3 클래스에서 제공하는 이동 함수

mky 2025. 8. 24. 16:28
using UnityEngine;

public class LifeCycle : MonoBehaviour
{
    Vector3 target = new Vector3(8, 0.6f, -3.77f);
    void Update() // 프레임(로직), 환경에 따라 실행 주기가 떨어질 수 있음
    {
        //1. MoveTowards : 등속 이동, (현재위치, 목표위치, 속도)
        transform.position = 
            Vector3.MoveTowards(transform.position, target, 1f);

        //2. SmoothDamp : 부드러운 감속 이동, (현재위치, 목표위치, 참조속도, 속도), 마지막 매개변수에 반비례하여 속도 증가
        Vector3 velo = Vector3.zero; 
        transform.position =
            Vector3.SmoothDamp(transform.position, target, ref velo, 0.1f); //ref: 참조 접근 -> 실시간으로 바뀌는 값 적용 가능

        //3. Lerp : 선형보간, SmoothDamp보다 감속시간이 김. (시작위치, 목표위치, 보간계수(0~1)), 마지막 매개변수에 비례하여 속도 증가
        transform.position =
            Vector3.Lerp(transform.position, target, 0.05f);

        //4. Slerp : 구면선형보간, 호를 그리며 이동, Lerp보다 감속시간이 더 김. (시작위치, 목표위치, 보간계수(0~1)), 마지막 매개변수에 비례하여 속도 증가
        transform.position =
            Vector3.Slerp(transform.position, target, 0.05f);

    }

}

골드메탈님의 유튜브 강의 내용을 정리해보았다.