제페토 스튜디오에서 무빙블록 콘텐츠를 만들 때
y축 공전은 별 문제 없이 잘 됐는데,
x축 공전을 시키니까 막 물체도 막 일그러지고..? 회전도 이상하게 되고 해서 고민하고 있었다.
부모에는 Transform만 있고 그걸 공전시키고 있었고,
자식 오브젝트로 실제 공전시킬 블록 오브젝트가 들어있었는데 아마 그런 구조도 한 몫하지 않았나..
(근데 이렇게 한 데는 분명 이유가 있었음)
무튼 이건 나름 실수를 통해 알아낸 건데,
localRotation에 할당하는 값을 막 바꿔보다가 마이너스 붙여도 봤는데 안되서
다시 원상복구 시키는 중에 실수로 rotation.w 의 값에서 마이너스 빼는 걸 깜박했는데
이게 갑자기 원하는 대로 잘 돌아갔다 ㅋㅋㅋㅋㅋㅋ
좀 특수하긴 하지만, 아래 코드는 이러한 상황에서 사용하면 된다
this.childBlockObject.transform.localRotation
= new Quaternion(this.transform.rotation.x,this.transform.rotation.y,
this.transform.rotation.z, -this.transform.rotation.w);
더 좋은 방법이 있으려나..
위 코드의 경우는 그냥 현재 부모 오브젝트의 rotation을 전달하는 것이긴 하지만,
EulerAngles와 달리 Quaternion은 생소하기 때문에,
예상치 못한 결과를 가져오기 쉬워서 값을 직접 지정하는 건 권장되지 않고 있다.