Transform.position(set)과 Transform.Translate의 차이점을 알아 보겠습니다.
차이점을 알아 보기전 아래의 두 스크립트를 살펴봐주세요.
결론부터 말씀 드리면 위의 두 스크립트는 동일하게 동작합니다.
하지만 동작원리는 갖지 않습니다.
Transform.position은 월드의 절대 좌표(혹은 월드 좌표)를 기준으로 동작하고 Transform.Translate는 자기 자신 즉, 로컬 좌표를 기준으로 동작합니다.
즉, 위의 스크립트를 설명하자면
1번의 경우 Transform.position(get)으로 현재 자신의 월드 좌표를 가지고 와서 그 월드 좌표에 (0.01, 0, 0)을 더하기 한후 다시 자신의 그 더해진 좌표로 Transform.position(set)해주고 있습니다. Transform.position(set)은 그 좌표로 이동한다는 의미입니다. 이것이 PC 프레임마다 Update되기 때문에 0.01씩 계속 이동하게 됩니다.
2번의 경우 절대 좌표는 상관없습니다. 자신(This)의 위치 Transform.Translate에서 매 프레임마다 0.01씩 X축으로 이동하라는 의미입니다.
사용하기 나름이겠지만 보통 비행기가 이동하거나 특정 오브젝트를 따라가거나 할 때(몬스터가 Player 캐릭터를 따라가기)는 Transform.Translate를 사용합니다.
Transform.Translate에 대해 추가적인 설명글이 별도로 있습니다.
'VS 유닛' 카테고리의 다른 글
Time Units (1) | 2021.08.24 |
---|---|
Control units (0) | 2021.08.24 |
This unit (0) | 2021.08.24 |
유닛의 종류 (0) | 2021.08.23 |
Transform.Translate (0) | 2021.07.23 |