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);
}
}
'Unity > 기초' 카테고리의 다른 글
[Unity][기초] 'Transform어쩌고' 좌표변환 (1) | 2021.08.26 |
---|