• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Unity开发VR项目问题总结分析

    一、StreamVR问题:

    1.运行项目时不显示手柄控制器:

    出现这种情况一般会在头显中提示不能加载按键配置文件,出现这种提示时请直接打开steam(注意不是steamVR哈),按照我的了解应该是按键配置文件是存储在Steam上面的,不过项目发布以后就不会出现这种问题了。

    2.按键动作检测出现重复问题:

    出现这种问题应该是现在的插件本身的问题,比如检测按键抬起或者按键按下经常会出现触发两次的情况,目前的解决方案是设置一个Bool值,按下的时候设为true,抬起的时候设为false

    if (TrigerAction.GetStateDown(SteamVR_Input_Sources.RightHand))
            {
                if (!rightTriger)
                {
                    rightTriger = true;
                }
            }
     
            if (TrigerAction.GetStateUp(SteamVR_Input_Sources.RightHand))
            {
                if (rightTriger)
                {
                   rightTriger = false;
                }
            }

    3.Error during OpenVR Init: Init_InterfaceNotFound:

    这个问题应该是SteamVR与OpenCV(1.0.0版)的兼容问题,直接通过Steam更新SteamVR(我这边是更新到1.15.19),之后就没有这个问题了~

    4.[SteamVR] Interface Not Found (105):

    这个问题还是SteamVR版本的问题,最少SteamVR1.15.19是有此问题的,出现这个问题的时候手柄是显示不出来的

    http://steamcommunity.com/app/250820/discussions/0/133259227526422836/

    可以更新到beta版解决此问题,更新方法如下,目前更新到1.16.4版就解决了这个问题:

    5.更新SteamVR时如果之前不小心删除了SteamVR的本地文件

    执行“运行”或“更新”时就会出现错误,这是可以通过下面的步骤重新安装SteamVR:

    二、Unity问题:

    1.检测射线是否在UI之上(用于避免模型与UI互相干扰)

    注意此方法用在FixedUpdate中比较靠谱,若在Update中检测在webgl平台时不能及时检测到:

    void FixedUpdate()
    {
        //射线处在UI之上
    #if !(UNITY_EDITOR||UNITY_STANDALONE )
            if (Input.touchCount = 0)
                return;
    #endif
    #if !(UNITY_EDITOR||UNITY_STANDALONE )
            if (EventSystem.current.IsPointerOverGameObject(Input.GetTouch(0).fingerId))
    #else
            if (EventSystem.current.IsPointerOverGameObject())
    #endif
                return;
        //射线不处于UI上时触发下方功能
        ···
    }

    2.VS2019调试unity项目:

    在顶部菜单栏中“调试”->“附加到Unity调试程序”

    3.Unity 加载项目时出现“package manager error”:

    4.灯光烘焙问题:

    ①Directional 直射光也是可以用于烘焙的,但是属于全局光,如果用于室内烘焙会被房间的墙壁遮挡,因此烘焙出来的室内虽然也会有一定的亮度,但是关闭实时光照后处于室内的可移动物品就全部变为黑色(无光状态)。

    ②室内尽量使用点光源(PointLight)或者聚光灯光源(SpotLight)来进行烘焙,可以烘焙的亮一些,然后通过调整贴图的亮度来控制光线的亮度。

    5.物体旋转问题:

    通过eulerAngles进行物体旋转的时候会出现万向锁的情况,但是直接用Quaternion计算坐标又很麻烦,可以通过Quaternion.Euler()方法将eulerAngles转换为Quaternion来解决此问题

    Quaternion _angle = Quaternion.Euler(new Vector3(0,45,0));
    transform.rotation = _angle;

    6.UGUI中无法触发事件(比如Button的点击)问题:

    注意一下此UI控件所在Canvas中的EventCamera是否为空,因为事件的触发是基于摄像机发出的射线,若不为空此Canvas下面的所有UI控件的事件触发都会基于此摄像机,将此值设为空后将会默认由主摄像机(MainCamera)触发事件。

    您可能感兴趣的文章:
    • Unity实现VR中在黑板上写字效果
    • Unity3D基于陀螺仪实现VR相机功能
    上一篇:Unity中webgl使用避雷要素指南
    下一篇:如何在Unity中使用VR暴风魔镜蓝牙手柄
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Unity开发VR项目问题总结分析 Unity,开发,项目,问题,总结,