AR制作的基础方法可以参见Unity Learn的官方教程:
Introduction to XR: VR, AR, and MR Foundations
这里就不赘述了,下面简单总结一下我在做第一个AR应用时遇到的bug以及解决方案。
1. 在XR Settings里找不到Vuforia Augmented Reality Support选项
原因:2017.2版Unity以及之后的版本已将Vuforia引擎整合进去,无需再进行勾选,因此XR Settings里去掉了该选项。(见https://library.vuforia.com/articles/Training/getting-started-with-vuforia-in-unity.html)
解决方法:跳过此步。
2. 找不到Vuforia引擎
原因:虽然Unity整合了Vuforia引擎,但是还需要导入一下。(见https://library.vuforia.com/articles/Training/getting-started-with-vuforia-in-unity.html)
解决方法:Window-Package Manager-安装Vuforia Engine AR
3. 打包失败,提示缺少NDK、OpenJDK和SDK三个安卓开发模块
原因:我下载2019.3.8版Unity时,只在安卓平台前面打了勾,没有在其展开项下打勾,导致上述三个模块没有安装。而我当时没有通过Unity Hub安装Unity,所以也无法通过Unity Hub补装三个模块。
解决方法:分别从安卓开发相关官网下载上述模块并安装,或者重新从Unity Hub安装最新版Unity并选中所有需要的模块。我选择了后一种方法。
4. 打包仍然失败,仍然提示缺少三个安卓开发模块。
原因:Unity仍然从之前的Editor文件夹中寻找模块安装路径,但现在我电脑里有两版Unity,模块在新版Unity的安装路径下。
解决方法:路径修改失败,我把三个模块的文件夹拷到原路径下,问题解决。
5. 打包后程序图标不显示
原因:似乎是与Target API Level有关。Adaptive图标需要API Level至少为26,Round图标需要API Level至少为25。
解决方法:前景背景图像都要选择好,同时调整Target API Level。(我先是都调整为28,后来说我没安装这个level,就又改回安装的最高level,图标显示就正常了。)
6. 测试时摄像头模糊,不对焦
原因:应该是Vuforia摄像头本身的问题。
解决方法:下一个自动连续对焦的脚本,挂到摄像机上。
7. 音画不同步
原因:模型识别到图片才开始显示,但音乐会自动播放,从而产生时差。
解决方法:下了个音画同步脚本,覆盖Default Trackable Event Handler脚本。
8. 在大部分手机上测试时不显示模型
原因:使用MMD插件将MMD模型导入Unity时,默认使用了MMD的贴图着色器,但这种格式可能不为大多数手机识别。
解决方法:安装Unity标准资源包中的Toon着色器,将贴图着色器改为Toon-Basic。
9. 模型不动
原因:仍然和MMD插件有关。
解决方法:删去MMD4Mecanim文件夹下除Plugins、Shaders和Textures以外的所有文件夹。