정의
- 유니티 물리 엔진(Rigidbody) 없이 부모 오브젝트의 위치를 기준으로 오브젝트의 상대적 좌표를 직접 수정하여 원하는 위치로 이동
- 로컬 좌표계를 기준으로 이동한다. (부모 오브젝트가 없을 경우 월드 좌표계와 동일하게 이동한다)
사용 이유
- 부모 오브젝트로부터 일정 거리를 유지하며 이동하기 위해서
- 오브젝트를 지정된 위치로 정확하게 이동하기 위해
- 유니티 물리 연산(Rigidbody)을 사용하지 않기 위해서
- 순간적인 이동처리를 하기 위해서
- ex) 텔레포트, 포탈이동
- 물리적인 영향을 받지 않는 이동을 처리하기 위해서
- ex) 구름 이동
언제 사용해야 하는가
- 부모 오브젝트를 기준으로 자식 오브젝트를 움직여야 할때
- 캐릭터의 장신구, 무기처럼 부모 오브젝트와 함께 움직여야 하는 물체를 다뤄야 할때
- 차량, 방 내부 소품의 위치를 바꿔야 할때
- 애니메이션으로 움직이는 부모 오브젝트의 특정 지점에 특정 오브젝트를 고정하거나 위치를 수정할때
- 패널 UI(부모 오브젝트) 안에 있는 UI들의 위치를 조정할 때
- 오브젝트를 지정된 위치로 정확하게 이동해야 할 때
- 순간적인 이동을 해야 할 때
- 물리적인 영향을 받지 않는 이동을 해야 할 때
사용 방법
- Update에서 transform.localPosition을 수정
ex)
using UnityEngine;
public class Example : MonoBehaviour
{
public float speed = 1.0f;
private void Update()
{
transform.localPosition += Vector3.forward * speed * Time.deltaTime;
}
}
transform.localPosition 이동 장점
- 로컬 좌표계가 기준이므로 Quaternion 연산을 하지 않고 로컬 이동이 가능하다.
- 부모 오브젝트가 기울어져 있더라도 기울어진 방향대로 움직인다.
- 좌표를 직접 설정해 이동하는 것이므로, 정확한 이동이 가능하다.
- 유니티 물리엔진(Rigidbody)을 사용하지 않아 연산 비용이 저렴하다.
transform.localPosition 이동 단점
- 물리 현상을 직접 구현해야 한다.
- 직접 구현하지 않으면 오브젝트가 벽을 뚫거나 점프를 할 수 없다.
- 캐릭터 오브젝트와 카메라 오브젝트의 이동 타이밍이 어긋나 카메라 오브젝트가 벌벌 떨릴 수 있다.
ex) 지터링 현상
'유니티 > 이동' 카테고리의 다른 글
| [유니티(Unity)] 좌표이동 - Vector3.MoveTowards 이동 (0) | 2026.05.05 |
|---|---|
| [유니티(Unity)] 좌표이동 - Vector3.Slerp 이동 (0) | 2026.05.04 |
| [유니티(Unity)] 좌표이동 - Vector3.Lerp 이동 (0) | 2026.05.02 |
| [유니티(Unity)] 좌표이동 - transform.Translate 이동 (0) | 2026.05.02 |
| [유니티(Unity)] 좌표이동 - transform.position 이동 (0) | 2026.05.02 |