정의
- 유니티 물리 엔진(Rigidbody) 없이 오브젝트의 좌표를 직접 수정하여 원하는 위치로 이동
- 월드 좌표계를 기준으로 이동한다.
사용 이유
- 오브젝트를 지정된 위치로 정확하게 이동하기 위해
- 유니티 물리 연산(Rigidbody)을 사용하지 않기 위해서
- 순간적인 이동처리를 하기 위해서
- ex) 텔레포트, 포탈이동
- 물리적인 영향을 받지 않는 이동을 처리하기 위해서
- ex) 구름 이동
언제 사용해야 하는가
- 오브젝트를 지정된 위치로 정확하게 이동해야 할 때
- 순간적인 이동을 해야 할 때
- 물리적인 영향을 받지 않는 이동을 해야 할 때
사용 방법
- Update 메서드에서 transform.position을 수정
ex)
using UnityEngine;
public class Example : MonoBehaviour
{
private void Update()
{
transform.position += Vector3.forward * 1.0f * Time.deltaTime;
}
}
transform.position 이동 장점
- 좌표를 직접 설정해 이동하는 것이므로, 정확한 이동이 가능하다.
- 유니티 물리엔진(Rigidbody)을 사용하지 않아 연산 비용이 저렴하다.
transform.position 이동 단점
- 물리 현상을 직접 구현해야 한다.
- 직접 구현하지 않으면 오브젝트가 벽을 뚫거나 점프를 할 수 없다.
- 캐릭터 오브젝트와 카메라 오브젝트의 이동 타이밍이 어긋나 카메라 오브젝트가 벌벌 떨릴 수 있다.
ex) 지터링 현상
- 로컬 이동을 구현하려면 Quaternion 연산이 필요함.
- Quaternion 연산 = 벡터와 쿼터니언의 곱 = Vector3 * Quaternion = 방향벡터를 특정 각도만큼 회전시키기.
ex) transform.position += transform.rotation * Vector3.forward * speed * Time.deltaTime;
- Quaternion 연산 = 벡터와 쿼터니언의 곱 = Vector3 * Quaternion = 방향벡터를 특정 각도만큼 회전시키기.
cf) 물리 현상 = 점프, 충돌, 마찰력, 관성, 밀려나가기
cf) 지터링 현상 = 캐릭터 이동이 끝나기 전후 타이밍과 카메라 추적 타이밍이 어긋나 카메라가 벌벌 떨리는 현상
cf) Quaternion = 물체가 어느 방향으로 얼마나 회전되어 있는지를 나타낸 4차원 수
cf) transform.rotation 값은 인스펙터에서는 오일러 각도(x, y, z)처럼 보이지만, 쿼터니언 값이다.
cf) 지터링 현상 예제 코드
public class PlayerMovementController : MonoBehaviour
{
public float speed;
private void Update()
{
transform.position += Vector3.forward * speed * Time.deltaTime;
}
}
public class CameraFollower : MonoBehaviour
{
public Transform targetTransform;
private void Update()
{
transform.position = targetTransform.position + new Vector3(0, 5, -10);
}
}

지터링 현상은 LateUpdate로 해결할 수 있다.
public class CameraFollower : MonoBehaviour
{
public Transform targetTransform;
private void LateUpdate()
{
transform.position = targetTransform.position + new Vector3(0, 5, -10);
}
}

'유니티 > 이동' 카테고리의 다른 글
| [유니티(Unity)] 좌표이동 - Vector3.MoveTowards 이동 (0) | 2026.05.05 |
|---|---|
| [유니티(Unity)] 좌표이동 - Vector3.Slerp 이동 (0) | 2026.05.04 |
| [유니티(Unity)] 좌표이동 - Vector3.Lerp 이동 (0) | 2026.05.02 |
| [유니티(Unity)] 좌표이동 - transform.localPosition 이동 (0) | 2026.05.02 |
| [유니티(Unity)] 좌표이동 - transform.Translate 이동 (0) | 2026.05.02 |