Local Coordinate
- 프리팹 에셋 총알을 총구 방향으로 인스턴스하고, 총알의 forward 방향으로 힘을 주었는데 옆면으로 총알이 이동하여 local 좌표계와 local 축을 변경할 수 있는 방법을 공부하였다.
-
transform.forward
transform.forward / transform.up / transform.right 는 객체의 local 좌표(객체 기준에서)에서 각각 forward(z축), up(y축), right(x축)을 world 좌표로 가져온다. 따라서 총알을 어떻게 rotate 한들 local 축은 변함이 없고, transform.forward로 힘을 주는 것은 내 프리팹의 local z축으로 힘을 가한다.따라서 총알이 정확한 방향으로 진행하고자 한다면 프리팹의 local 축을 확인하고, 총알의 앞쪽 방향(해당 프리팹에선 위쪽)으로 힘을 가해야하는 것이다. -
프리팹 local 축 변경
- 위 그림처럼 총알이 Addforce해야하는 방향을 Up으로 정정하면 총알의 방향은 맞아도, 이번에는 총알이 날아가는 방향 역시 up을 향해 문제가 생길 것이다. 총알을 회전하기 위해 프리팹을 90도 변경해도 변하는 것은 역시 없을 것이다.이것 역시 프리팹의 rotation을 변경하여도 local 축은 변하지 않기 때문이다. 인스턴스 시의 프리팹의 local 축을 변경하고 싶다면, Empty Object를 하나 생성하여 원하는 방향/ 위치로 기존의 오브젝트를 이동 후 Empty Object의 자식 오브젝트로 계층화하여 새로운 프리팹으로 저장하면 된다.