2013-08-08 3 views
1

에 나는 Unity3d을 시도하고 있었다 0) 복합 회전 (0,0,0) 수평 확장 B의 아이 회전은 Unity3D

속성 (1,1,1)

: 위치 - (0,2,0) 복합 회전을 (0,0,0) 스케일 - (1,4,1)

Transform 객체를 가진 C# 스크립트를 만들었습니다. z 축을 따라 transform.localrotation을 사용하여 회전합니다. 유니티 에디터에서 A를 변형으로 붙이면 B가 모서리 중 하나를 따라 회전하는 것처럼 보입니다. (내가 선택한 모퉁이가 어떻게되는지 모르겠습니다.) B를 첨부하면 중심을 따라 회전하는 것처럼 보입니다. 왜 이런 일이 발생하는지 이해가되지 않습니까? 저는 지역 회전에서 부모 회전이 고려되었다는 것을 압니다. 그러나 A와 B의 초기 회전은 둘 다 0이므로 중요하지 않아야합니다.

답변

2

transform.localRotation을 직접 수정하면 쿼터니온을 수정하게됩니다. 직접 쿼터니언을 수정해서는 안

하는 데는 보통 :

Tthey (! 원문)는 복잡한 숫자에 따라 직관적으로 이해하기 쉬운 아니다. 개별 Quaternion 구성 요소 (x, y, z, w)에 액세스하거나 수정하지 마십시오. 가장 자주 (예 : 변형에서) 기존 회전을 가져 와서 새로운 회전을 생성하는 데 사용합니다 (예 : 두 회전 사이를 부드럽게 보간).

는 unity3d 문서에서 가져온 : http://docs.unity3d.com/Documentation/ScriptReference/Quaternion.html

transform.Rotate() 또는 transform.localEulerAngles를 사용해보십시오. 그것은 당신의 문제를 해결해야합니다.

http://docs.unity3d.com/Documentation/ScriptReference/Transform-localEulerAngles.html http://docs.unity3d.com/Documentation/ScriptReference/Transform.Rotate.html

+0

transform.rotate 나에게 절대 회전을 줄 것이다. 나는 현재의 회전과 관련하여 B를 회전시킬 필요가있다. –

+0

나는 당신이 의미하는 바를 정확히 이해하지 못합니다. 'transform.localEulerAngles'을 시도 했습니까? – jonas