c# – Unity Cardboard Orientation Landscape Right Up

c# – Unity Cardboard Orientation Landscape Right Up,第1张

概述嗨,我有一个Unity应用程序,它使用谷歌Cardboard SDK启用立体视图,所以我将有一个支持VR的应用程序.我的应用程序运行完美. 但是如果我将播放器设置方向设置为自动方向,只有横向左侧和允许横向右侧,则会出现问题.当它处于横向左侧时,一切都按照正常情况工作,但是当它处于横向右侧时,纸板视图将转动180度(设置按钮移动到屏幕的底部)但是我的统一对象没有.因此,我有一个颠倒的对象. 有什么办 嗨,我有一个Unity应用程序,它使用谷歌Cardboard SDK启用立体视图,所以我将有一个支持VR的应用程序.我的应用程序运行完美.

但是如果我将播放器设置方向设置为自动方向,只有横向左侧和允许横向右侧,则会出现问题.当它处于横向左侧时,一切都按照正常情况工作,但是当它处于横向右侧时,纸板视图将转动180度(设置按钮移动到屏幕的底部)但是我的统一对象没有.因此,我有一个颠倒的对象.

有什么办法解决这个问题?

谢谢.

解决方法 看起来SDK用于读取陀螺仪的本机代码仅针对Landscape left方向进行了硬编码.这可以通过编辑BaseCardboardDevice.cs并使用以下代码替换UpdateState()的定义来解决:

private Quaternion fixOrIEntation;public overrIDe voID UpdateState() {  GetheadPose(headData,Time.smoothDeltaTime);  ExtractMatrix(ref headVIEw,headData);  headPose.SetRightHanded(headVIEw.inverse);  // Fix head pose based on device orIEntation (since native code assumes Landscape left).  switch (input.deviceOrIEntation) {    case DeviceOrIEntation.Landscapeleft:      fixOrIEntation = Quaternion.IDentity;      return;    case DeviceOrIEntation.LandscapeRight:      fixOrIEntation = Quaternion.Euler(0,180);      break;  }  headPose.Set(headPose.position,headPose.OrIEntation * fixOrIEntation);}

我建议在Cardboard设置中关闭Neck Model Scale(将其设置为0),因为它不会出现在此代码中.

总结

以上是内存溢出为你收集整理的c# – Unity Cardboard Orientation Landscape Right Up全部内容,希望文章能够帮你解决c# – Unity Cardboard Orientation Landscape Right Up所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1219631.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存