Unity + HoloLens开发遇到的问题记录

1.HoloLens设备摄像头说明

中间摄像头为成像、画面拍摄与识别手势的摄像头;两侧摄像头为空间识别摄像头,识别空间位置与环境。

2.在Hololens中开发TCP通信,出现错误“ArgumentException: Value does not fall within the expected range”的解决方案

打开Unity的安装文件夹下…\Editor\Data\il2cpp\libil2cpp\os\Win32找到文件SocketImpl.cpp删除如下代码块中前面标注-号的行

             case kSocketOptionLevelIP:
-#ifdef SOL_IP
-                *system_level = SOL_IP;
-#else
                 *system_level = IPPROTO_IP;
-#endif
#if IL2CPP_SUPPORT_IPV6
             case kSocketOptionLevelIPv6:
-        #ifdef SOL_IPV6
-                *system_level = SOL_IPV6;
-        #else
                 *system_level = IPPROTO_IPV6;
-        #endif

3.Hololens中模型或UI单眼显示问题

1.使用MRTK中自带的shader(MixedRealityToolkit下);

2.若不使用MRTK中的shader,则修改当前使用的shader:

(1)在struct appdata中添加

        UNITY_VERTEX_INPUT_INSTANCE_ID

(2)在struct v2f中添加

        UNITY_VERTEX_INPUT_INSTANCE_ID

        UNITY_VERTEX_OUTPUT_STEREO

(3)在v2f vert (appdata_t v)中添加

        UNITY_SETUP_INSTANCE_ID(v);

        UNITY_TRANSFER_INSTANCE_ID(v, o);

        UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);

(4)在fixed4 frag (v2f i) : ***中添加

        UNITY_SETUP_INSTANCE_ID(i);

3.若不使用MRTK中的shader,也可切换为unity的urp渲染管线使用支持urp的shader:

4.通过Type-C线连接电脑部署应用失败

 (1).确定设备处于开机未休眠状态(电源灯亮着),且已登录微软账号

 (2).确定电脑和设备上的设置选项"开发者模式"已开,若未开启则开启后重启再试

 (3).确定下安装vs时是否勾选了USB连接性,安装后重启vs,再试

 (4).确定发布项目时输入的设备配对ID为HoloLens设备设置中开发者选项下的配对ID(VS出现配对提示时,输入部署HoloLens设备配对代码,配对代码可在HoloLens设备的设置-->开发者选项-->配对中查看)

 (5).确定HoloLens设备已连接到可正常访问网页的网络,若未连接到正常网络发布时会出现以下错误提示

  (6).确定下设备上是否已经安装过同签名的应用,如有先卸载,再试

 (7).重启HoloLens设备 ,再试

 (8).换个USB插槽试试,换根Type-C线试试

如果依次是下来还是不行,可以通过无线远程部署

(1)确定设备处于开机未休眠状态(电源灯亮着),电脑和设备上的设置选项"开发者模式"已开

(2)确保PC和HoloLens在同一网段,且可正常访问网页的网络

(3)vs中依次选择Release、ARM64、远程计算机

 (4)vs中依次选择调试-->**调试属性-->调试,然后在计算机名栏输入部署HoloLens设备ip,之后点击确认

 (5)点击下图按钮进行部署,若第一次部署则需要配对(VS出现配对提示时,输入部署HoloLens设备配对代码,配对代码可在HoloLens设备的设置-->开发者选项-->配对中查看),配对完成后等待部署完成即可。

5.修改发布设置中的图标后发布到HoloLens中无变化问题

更改Player Setting 中软件图标、软件打开弹窗显示的图片后,不能使用覆盖之前打包过的VS项目的方式发布,否则修改不会应用,应删除已打包工程重新发布,或发布新工程。

6.HoloLens2+vuforia出现画面抖动关闭VuforiaConfiguration --> Track Device Pose

7.unity中烘焙的光照贴图无法在HoloLens中显示

1.修改Project Setting->Graphics->Shader Stripping->Lightmap Modes的AutomaticCustom,即光照贴图模式从自动改为自定义来强制开启光照贴图

2.将 MRTK 标准着色器(Shader)文件添加到Project Setting->Graphics->Built-in Shader Settings->Always Included Shaders列表中,这将确保 MRTK 着色器的所有编译都包含在您的项目中。

8.HoloLens中打开ar(vuforia)瞬间会导致投屏等传输画面中断,但重新连接后可正常进行ar扫描识别

9.HoloLens中UGUI的Mask组件失效

由于Depth Format选择16-bit depth导致,有两种解决方法:

(1)修改16-bit depth为24-bit depth

(2)或者Mask组件替换为Rect Mask 2D

10.HoloLens中UGUI的InputField只能输入不能删除

解决方法:InputField组件替换为MRTKUGUIInputField+UI_KeyboardInputField

 

猜你喜欢

转载自blog.csdn.net/StudyHard_luozhongxu/article/details/121424997