我想通过游戏手柄修改相机对象的旋转。我的代码可以在编辑器中运行,但不能在iOS上运行。(然而,它看起来像是在工作,但是被VROne代码推回到了第二帧)。
我可以用裂缝解决这个问题,但是还不能用VROne解决这个问题。对于裂缝,我添加了一个“偏移量”的旋转是由GamePad操纵杆改变的。偏移量被计算到最终的旋转中,其中也包括球员的视线方向。
你知道我要修改代码的哪一部分才能在VROne软件开发工具包中正常工作吗?
发布于 2014-12-18 20:11:15
如果要使用自己的GameRotation角度(从游戏手柄),这些值可能会被集成的HeadTracking覆盖。你有没有试过在VROneSDKHead对象中禁用VR头部跟踪脚本?
在调用本机静态库的HeadTrackingIOS类中处理HeadTracking角度。您可以尝试将您的游戏手柄偏移量添加到第43行返回的四元数中。
希望这对我们有所帮助,让我们知道它是否有效!
发布于 2014-12-19 07:26:31
编辑:不要紧,下面的代码可以在编辑器中工作,但在iOS设备上,相机仍然被强制向前移动。我试试另一个答案。
酷--上面的答案可能会起作用。听起来就是我要找的。
然而,根据Unity论坛上的建议,我实现了这个解决方案:首先,我用localPosition 0,0,0使VROne对象成为另一个空游戏对象的子对象。
在旋转时,我旋转父对象,但首先确保父对象与子对象的位置相同,然后子对象localPosition为0,0,0 - -right现在子对象进行物理移动,父对象进行旋转。我不确定是否可以将角色控制器移到父级,或者在SDK中做一些其他时髦的事情,但现在这似乎是可行的。
if (RightStickX.Value != 0)
{
transform.position = childObject.transform.position;
childObject.transform.localPosition = Vector3(0,0,0);
transform.eulerAngles.y += RightStickX.Value * rotationSpeed * Time.deltaTime;
}发布于 2015-04-21 03:32:01
为了防止这对某人有帮助,我能够用一种简单得多的方法解决它。
VrOneSDK对象是我用游戏面板旋转的对象的子对象。然后在“vrHeadTracking.cs”中我简单地改变了
transform.rotation = Quaternion.Inverse(initialRotation) * rot;至
transform.localRotation = Quaternion.Inverse(initialRotation) * rot;这样头部跟踪是相对于我的父对象的旋转。
https://stackoverflow.com/questions/27498412
复制相似问题