SteamVR报错Assertion failed on expression:'IsMatrixValid'以及不显示HTC Vive手柄控制器的解决办法

SteamVR报错Assertion failed on expression:’IsMatrixValid’以及不显示HTC Vive手柄控制器的解决办法

这里使用的SteamVR Plugin的版本是 1.2.3,Unity都是64位版本,操作系统是Windows 10 64位版本。

一、Assertion failed on expression:’IsMatrixValid’

在Unity 5.6.1和Unity 5.6.3中,进入Play模式时SteamVR插件都会报错 Assertion failed on expression:'IsMatrixValid' ,在网上查找该问题时,发现有人用Unity 5.6.0和Unity 2017的某些版本也会遇到这个错误。
因为项目里既有SteamVR插件,又有Oculus插件,而且电脑上也有HTC Vive、SteamVR和Oculus Home等虚拟现实程序,干扰因素比较多,不能精确的排除各种干扰,所以下面提出的出错原因和解决办法不保证正确性,只是根据我自己的情况做出的猜测。

出错原因

  • 【猜测1】电脑上已有的Steam VR程序和HTC Viveport新安装的Steam VR程序冲突。
  • 【猜测2】HTC Viveport自己安装的Steam VR程序版本不符合Steam VR Plugin 1.2.3的要求,该种可能性比较大。

解决办法

  1. 关闭Unity以及其他正在运行的虚拟现实相关程序,如HTC Viveport、Oculus Home、Steam VR等。
  2. 启动Steam(没有的话就新安装一个),然后在Steam中打开SteamVR,不要打开HTC Viveport所安装的SteamVR。
  3. 启动Unity,进入Play模式,如果问题解决,说明我猜对了,否则我就猜错了(希望得到反馈)。

顺便给出在搜索该问题时找到的其他人提出的两种解决办法(我没有去尝试这些办法):

  1. 完全重新安装Unity、HTC相关程序和SteamVR。
  2. 将项目中的所有资源进行重新导入(菜单栏:Assets - Reimport All)。

二、游戏中不显示HTC Vive手柄控制器

这个问题同样也发生在上述的多个版本的Unity中,网上搜索该问题的时候发现有些人能用有些人就不能用。
具体表现就是,进入Play模式后,游戏中看不到手柄。在Hierarchy中可以看到[CameraRig]下的LeftController和RightController都是灰色的,也就是说它们被SetActive(false)了。
有人提出的解决办法是:给 [CameraRig] / camera[head] / camera[eye] 对象添加脚本组件 SteamVR_UpdatePoses。该方法在SteamVR Plugin 1.2.3中不可用,因为该脚本被废弃,每次添加这个脚本,编辑器都会自动将其移除。

出错原因:【猜测】SteamVR Plugin 1.2.3的恶性Bug导致该插件在低版本Unity中不能正常使用。

解决办法:升级到Unity 2017.4.3(我自己都觉得不太靠谱,虽然我是这样解决的)。

还有个解决办法就是使用低版本的SteamVR插件,我导入低版本插件后又遇到了新的问题,干脆又换回了1.2.3。

猜你喜欢

转载自blog.csdn.net/qq_21397217/article/details/80344577