유니티

3D 오브젝트 이동 정리

잼잼재미 2023. 12. 22. 19:57

MoveTowards


  • 목표 위치까지 등속이동
  • 숫자와 속도가 비례

 

[SerializeField] private GameObject _target;
    
    void Update()
    {
        transform.position = Vector3.MoveTowards(transform.position, _target.transform.position, 5f * Time.deltaTime); // 목표 위치로 등속운동, 숫자 비례, 현재위치, 목표위치, 속도
    }

 

 

SmoothDamp


  • 목표 지점 근처에서 감속하며 이동
  • 숫자는 걸리는 시간

 

[SerializeField] private GameObject _target;
Vector3 velo = Vector3.zero;

void Update()
{
    transform.position = Vector3.SmoothDamp(transform.position, _target.transform.position, ref velo, 2f);
}

 

 

Lerp


  • 선형 보간을 이용한 이동
  • SmoothDamp 와 비슷하지만 보다 감속 시간이 김
  • 숫자와 속도가 비례 (최대값 1)

 

[SerializeField] private GameObject _target;

    void Update()
    {
        transform.position = Vector3.Lerp(transform.position, _target.transform.position, 0.01f);
    }

 

 

 

Slerp


  • 구형 보간을 이용한 이동
  • 목표 위치까지 포물선으로 이동
  • 숫자와 속도가 비례
  • 우주선이 착륙하는 느낌

 

[SerializeField] private GameObject _target;

    void Update()
    {
        transform.position = Vector3.Slerp(transform.position, _target.transform.position, 0.05f);
    }

'유니티' 카테고리의 다른 글

시네머신 카메라 적용  (1) 2023.12.26
3D FSM Player 이동, 점프, 공격 구현 (1)  (2) 2023.12.22
프로빌더(ProBuilder)  (0) 2023.12.21
Input 메서드 정리  (1) 2023.12.21
데미지 텍스트 효과  (0) 2023.12.21