版权声明:Davidwang原创文章,严禁用于任何商业途径,授权后方可转载。
??MRTK2.7 已在2021年9月份开始支持Unity2020.3LTS版本,通常而言,Unity2019.4+MRTK2.6 或者 Unity2020.3+MRTK2.7是最佳搭配,不建议混合搭配(如Unity2019.4+MRTK2.7),因为大如微软的巨头也无法保证兼容所有的版本,而且Unity版本变动太过频繁,版本之间不兼容问题经经常发生。
??本文基于Unity2020.3.21 + MRTK2.7.2 ,理论上Unity2020.3LTS版本应当都支持MRTK2.7。为表述的完整性,本文部分内容与前一篇文章内容有重复。
(一)、 创建工程
??通过Unity Hub,新建一个工程,选择3D模板、填写好项目名称、选择工程存储路径,项目名称与工程存储路径建议使用英文以防出现字符识别问题,如图1所示。
图1 新创建Unity工程
??工程创建完成后,在Unity菜单中,依次选择File> Build Settings(或者使用快捷键Ctrl+Shift+B),打开构建设置窗口,选择“Universal Windows Platform”,然后单击Switch Platform按钮切换工作平台到UWP平台(Universal Windows Platform,通用Windows平台),如图2所示。
图2 切换至UWP工作平台
(二)、 使用MRFT导入MROpenXR工具包
??事实上,使用Unity 2020.3 开发MR应用,可以有两种配置,一种支持OpenXR标准,另一种不支持。不支持OpenXR标准的配置方式将会在Unity2021.3LTS中被移除,因此,本文我们只介绍支持OpenXR标准的配置,毕竟OpenXR才是未来。 ?? ??从MRTK2.6开始,微软公司提供了Mixed Reality Feature Tool(混合现实特性工具,简称MRFT)工具,该工具以可视化的方式管理MRTK工具包,可以大大简化MRTK工具包的管理[ 使用MRFT需要安装.NET 5运行时,下载地址:https://dotnet.microsoft.com/download/dotnet/5.0]。MRFT是一个独立的工具程序,其实质也是通过修改manifest.json文件引导Unity加载MRTK相应工具包,使用该工具程序导入MRTK工具包非常简单,首先指定要进行处理的Unity工程路径,然后选择好相应的工具包即可完成操作。
??使用MRFT添加OpenXR工具包,该工具包位于Platform Support下,勾选Mixed Reality OpenXR Plugin 前的多选框即可,如图3所示。在MRFT中添加完OpenXR工具包后,在返回到Unity编辑器时,Unity会自动检测和加载对应的工具包。
图3 使用MRFT管理MR OpenXR工具包
(三)、 配置OpenXR环境
??由于使用的新的输入管理器,Untiy编辑器在导入MR OpenXR工具包后要求重启。
??在重启Unity编辑器后,在Unity菜单中,依次选择Edit> Project Settings打开项目配置窗口对项目进行配置。在打开的项目配置窗口中选择Player模块,在右侧功能区正确填写Company Name和Product Name,其他暂时全保持默认即可(项目配置窗口是设置管理各类项目属性、功能特性的地方,与项目所有功能特性、发布相关配置均在这里设置,在开发实际项目时需要认真详细填写项目配置窗口的各属性,以使发布的应用达到预期和优化性能)。
??在项目配置窗口中选择XR Plug-in Management模块,依次打开 XR Plug-in Management -> UWP -> OpenXR,勾选 Microsoft HoloLens feature group前的多选框,如图4所示。
图4 勾选 Microsoft HoloLens feature group前的多选框
??这时,可以看到图4中位置3的地方有黄色警示,点击黄色三角警示牌,弹出要求修复问题的面板,如图5所示,点击"Fix All"进行修复。
图5 修复问题
??修复完之后,会修复下面3个Fix,但还会余留一个Edit,如图6所示。
图6 余留的Edit项
??点击“Edit”按钮,然后关闭该弹出面板。在新打开的界面中添加“Microsoft Hand Interaction Profile”和“Microsoft Motion Controller Profiler”这两个配置文件,如图7所示。
图7 添加交互配置文件
(四)、 使用MRFT导入MRTK工具包
??还是使用MRFT导入MRTK工具包,如图8所示,在返回到Unity编辑器时,Unity会自动检测和加载对应的工具包。本文直接使用MRFT工具导入MRTK2.7.2包,如图8所示。
图8 使用MRFT管理MRTK工具包
??在Unity自动检测和加载对应的MRTK工具包后,会弹出一个提示框,如图9所示(可能需要拖拽一下弹出框边框才能看到完整的窗口),点击“Next”进入到下一页,如图10所示。
图9 在弹出的窗口中点击Next
??在图10中,点击Apply按钮后,Unity编辑器会再次重启。重启完成后,MRTK工具包即导入完成。
图10 在弹出的窗口中点击Apply
(五)、 修复输入方式
??在Unity菜单中,依次选择Edit> Project Settings打开项目配置窗口对项目进行配置,在Player属性中的 Other settings->Active Input Handling 选择 Both,如图11所示。
图11 设置输入方式为Both
(六)、 更新工程设置
??在Unity菜单中,依次选择Mixed Reality->Project->Apply recommended project settings for HoloLens2,对当前开发环境进行更新,如图12所示。
图12 更新工程设置
(七)、 创建和设置场景
??在Unity菜单中,依次选择Mixed Reality Toolkit > Add to Scene and Configure,MRTK会自动在当前场景中添加必须的游戏对象,并为MR使用配置好Main Camera对象的各属性。
??在Hierarchy窗口中,选择MixedRealityToolkit游戏对象,然后在Inspector窗口中,选择MixedRealityToolkit组件下的主配置文件为DefaultHoloLens2ConfigurationProfile,如图13所示,使用默认的HoloLens2配置文件。
图13 使用默认的HoloLens2配置文件
??作为演示,我们在场景中新创建一个立方体对象,调整立方体边长为0.2,适当调整一下立方体位置和角度,以使其能在MR应用启动时被看到,其他保持默认。
(八)、 导出Unity工程
??为更好的控制生成过程,我们首先需要将Unity工程导出为Visual Studio工程,在Unity菜单中,依次选择File > Build Settings,打开构建设置窗口,如图14所示。在构建设置窗口中添加场景,设置Target Device属性为Any Device、Architecture属性为X64,并根据需要设置其他属性,设置完成后,点击“Build”按钮将其构建到一个空的目标文件夹中。
图14 Unity工程导出设置
|