TransformDirection()

Transform.TransformDirection은 local space의 `direction`을 world space의 direction으로 변환한다. 해당 연산은 scale이나 position에 영향을 받지는 않는다. 반환된 벡터의 길이는 `direction`과 같다. 

 

그러나 해당 공식 문서의 설명만으로는 헷갈리는 감이 있어, 아래에 첨부한 참고자료를 살펴보고, 직접 사용해보며 내린 결론을 정리해서 다음과 같이 부연 설명을 덧붙인다.

 

`TransformDirection()`함수를 사용할 때는 인자로 넘겨준 direction을 로컬 좌표계로 취급하는데, 이는 TransformDirection()을 호출한 gameobject의 로컬 좌표계를 기준으로 잡는다.

Vector3 look = transform.TransformDirection(Vector3.forward);

`TransformDirection()`을 통해 로컬 좌표계를 월드 좌표계 기준으로 성공적으로 변환하게 되면 Vector값을 반환한다. 이 덕분에 TransformDirection()을 컨트롤하는 캐릭터에서 호출하게 되면 해당 함수에 전달된 direction은 로컬 좌표계 기준이므로 방향은 캐릭터의 전면부(보통은 +z축)가 된다. 

 

 

 

참고자료