Unity/기초

[Unity][기초] Transform 이동

자가라o 2021. 8. 25. 17:11

Transform을 이용한 이동에는 간단하게 3가지가 있다.

Transform.position / Transform.localPosition / Transform.Translate

 


 

1. Transform.position

  • 가장 기본이 되는 방식으로 오브젝트의 위치를 직접 변경해주는 방식.
  • 절대좌표는 월드좌표를 따른다.
// 원하는 위치를 직접 대입하거나
Transform.position = new Vector3(1.0f, 2.0f, 3.0f);

// 현재위치를 기준으로 이동을 원하는 만큼 추가해주거나
Transform.position += Vector3.up;

 

2. Transform.localPosition

  • 1번 방식과 대부분 유사하다.
  • 절대좌표는 부모의 (rotation이 기울어져 있다면 기울어진) 좌표를 따른다.
// 원하는 위치를 직접 대입하거나
Transform.localPosition = new Vector3(1.0f, 2.0f, 3.0f);

// 현재위치를 기준으로 이동을 원하는 만큼 추가해주거나
Transform.localPosition += Vector3.up;

 

3. Transform.Translate

  • 방식은 position += Vector3 방식과 같다.
  • 절대좌표는 스스로의 좌표를 따른다.
// 현재위치를 기준으로 이동을 원하는 만큼 추가
Transform.Translate(Vector3.up);

 


 

public class TransformCheck : MonoBehaviour
{
    [SerializeField] Transform _obs0;
    [SerializeField] Transform _obs1;
    [SerializeField] Transform _obs2;

    private void Update()
    {
        _obs0.position += Vector3.up * Time.deltaTime;
        _obs1.localPosition += Vector3.up * Time.deltaTime;
        _obs2.Translate(Vector3.up * Time.deltaTime);
    }
}