【发布时间】:2016-12-21 14:30:59
【问题描述】:
我有一个由物理白日梦控制器控制的方向盘(它的工作原理类似于 wii 控制器)。我使用这段代码来做到这一点:
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。
【问题讨论】:
标签: c# unity3d quaternions