나는 실제 백일몽 컨트롤러 (Wii 컨트롤러와 유사하게 작동 함)로 제어되는 핸들을 가지고있다. 나는 그것을 할이 코드를 사용하여 컨트롤러의 기본 위치가 스티어링 휠에 대한 좋지 않은 beacause를개체 회전을 특정 각도로 제한하는 방법은 무엇입니까?
void Update() {
transform.localRotation = GvrController.Orientation;
transform.localRotation = new Quaternion(0.0f, 0.0f, -transform.localRotation.y, transform.localRotation.w);
}
나는, 축 엉망이 필요합니다.
그러나 왼쪽 및 오른쪽으로 최대 회전 사이의 3 축 각도는 180도입니다. 이 범위에서는 모든 것이 잘되지만, 조금만 더 회전하면이 값이 음수로 바뀌고 모든 것이 엉망이됩니다. 플레이어가이 범위에서만 회전 할 수있게하려면 어떻게해야합니까? (3 축 회전의 z 축에서 0 ~ 180)?
편집 : 주요 문제는 0 또는 180을 교차 한 후 회전 값이 음수 값으로 변경된다는 점입니다. 두 값은 모두 같지만 순서는 다릅니다. 0을 지나면 -1에서 -180으로, 180에서 -180에서 -1로 형성됩니다.
Quaternion.AngleAxis는 float와 Vector3를 인수로 취합니다. 다른 함수를 사용해야합니까? –
@faken 편집 : 대신 Quaternion.Euler를 시도해보십시오 (나는 인정해야합니다 - 나는 더 많은 오일러 접근법을 사용하지 않지만 따르기가 쉽습니다) –
내가 그것을 사용하면 더 엉망이되어 작동이 잘못됩니다 심지어 '범위'에서. Vector3를 쿼터니언으로 변환했기 때문이라고 생각합니다. –