admin管理员组

文章数量:1530845

版权声明:Davidwang原创文章,严禁用于任何商业途径,授权后方可转载。

  本节主要讲述利用Unity2019.4LTS + MRTK2.6 的项目创建配置流程,下一节讲述Unity2020.3LTS + MRTK2.7 进行项目配置流程。Unity2021.3LTS还未发布 ,MRTK只会适配TLS版本,到时根据情况再进行完善。

  HoloLens2设备是一款便携式、可穿戴的移动设备,其应用开发部署流程与传统应用有些不太一样,下面我们从导入MRTK、配置工程项目、导出WMR(Windows Mixed Reality)应用,全流程体验开发MR应用的过程。

(一)、 创建工程

  通过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工作平台

  将工作平台切换到UWP平台后就可以导入MRTK工具包,MRTK支持以两种方式导入到Unity工程中,在实际使用中,使用其中任何一种方式都可以,下面分别予以介绍。

(二)、 直接导入MRTK工具包

  在Unity菜单中,依次选择Assets > Import Package > Custom Package…,打开资源导入窗口,选择已下载的Microsoft.MixedReality.Toolkit.Unity.Foundation.2.6.1.unitypackage包,将其导入到工程中。工具包导入完成后,会弹出MRTK项目设置窗口,可以根据需要进行设置,这里我们直接点击Apply按钮使用默认设置,如图3所示。

  Foundation工具包是使用MRTK开发套件的必选包,而Examples、Extensions、Tools、TestUtilities包则是可选包,可以根据需要导入(建议读者全部导入,可以随时查看示例、使用MRTK提供的各类工具,本书后面部分内容也需要使用到各类工具包)。

图3 配置对话框界面

  使用这种方式导入MRTK工具包最直观简单,但存在的问题是不好进行工具包升级,而且只能全部一次性导入,不能按需求导入指定功能,因此,我们也可以使用Unity提供的包管理器(Unity Package Manager,简称UPM)导入MRTK工具包。

(三)、 使用UPM导入MRTK工具包

  由于MRTK工具包目前并非Unity官方提供的组件包,因此首先需要在清单文件(manifest.json)中加入包源地址,在Unity中进行注册。在Windows文件管理器中打开Unity工程文件路径,使用Visual Studio 2019打开工程文件Packages/manifest.json文件,在该文件行首“{”后添加如代码清单1所示服务注册配置。
  代码清单1

{  //manifest.json文件原首行
  "scopedRegistries": [
    {
      "name": "Microsoft Mixed Reality",
      "url": "https://pkgs.dev.azure/aipmr/MixedReality-Unity-Packages/_packaging/Unity-packages/npm/registry/",
      "scopes": [
        "com.microsoft.mixedreality",
        "com.microsoft.spatialaudio"
      ]
    }
  ],

  添加完以上配置后,Unity就能正确解析和定位所使用服务,但我们并没有指定所需要的工具包,因此还需要将所使用的工具包名添加到依赖项(dependencies)中,如代码清单2所示,我们将Foundation、Tools、Examples工具包添加到依赖项中。
  代码清单2

"dependencies": {  //manifest.json文件原依赖项声明行
  "com.microsoft.mixedreality.toolkit.foundation": "2.6.1",
  "com.microsoft.mixedreality.toolkit.tools": "2.6.1",
  "com.microsoft.mixedreality.toolkit.examples": "2.6.1",

  完成所有配置后,保存文件,返回Unity软件,Unity将会自动加载MRTK Foundation工具包,在菜单中依次选择Window> Package Manager,打开包管理器窗口, 可以在该管理器中升级、卸载、管理Foundation包(名称为Mixed Reality Toolkit Foundation)。与Foundation包会自动加载不同,Examples、Tools包则需要开发者自行加载,如需要使用演示案例,在UPM窗口中,选择“Mixed Reality Toolkit Examples”,在右侧面板打开的案例列表中选择需要的案例,点击其后的Import into Project按钮即可完成该案例的导入,如图4所示。

图4 使用UPM管理MRTK工具包

  使用UPM管理MRTK工具包的好处是灵活性强,可以随时升级工具包版本,但需要注意的是,如果在使用中卸载了工具包,UPM中将不会出现对应的包名,这时需要重新编辑manifest.json文件以使Unity重新导入该包。

(四)、 使用MRFT导入MRTK工具包

  从MRTK2.6开始,微软公司提供了Mixed Reality Feature Tool(混合现实特性工具,简称MRFT)工具,该工具以可视化的方式管理MRTK工具包,可以大大简化MRTK工具包的管理[ 使用MRFT需要安装.NET 5运行时,下载地址:https://dotnet.microsoft/download/dotnet/5.0]。MRFT是一个独立的工具程序,其实质也是通过修改manifest.json文件引导Unity加载MRTK相应工具包,使用该工具程序导入MRTK工具包非常简单,首先指定要进行处理的Unity工程路径,然后选择好相应的工具包即可完成操作,如图5所示,在返回到Unity编辑器时,Unity会自动检测和加载对应的工具包。

图5 使用MRFT管理MRTK工具包

  使用MRFT管理MRTK工具包的最大好处是可以直观的看到所有MR应用开发所需要的工具包集合,并且可以选择加载指定版本。

(五)、 导入TextMeshPro工具包

  TextMeshPro是文字渲染工具包,相比于其他文字渲染插件,它使用有向距离场(Signed Distance Field,简称SDF)渲染文本,支持UI和3D文字渲染,在不同的分辨率和不同的位置下都能渲染出清晰的文本,而且它通过使用不同的简洁高效着色器来实现描边、阴影、发光等效果,有更好的性能表现。MRTK使用TextMeshPro渲染文本,可以预先导入该工具包,如果未预先导入,在使用到文本渲染时,也会弹出导入提示。我们预先导入该工具包,在Unity菜单中,依次选择Window> TextMeshPro >Import TMP Essential Resources,在随后打开的资源导入窗口中点击Import按钮即可完成导入,如图6所示。

图6 导入TextMeshPro工具包

(六)、 配置Unity项目

  现在我们已经把各类所需工具包导入到了项目中,在Unity菜单中,依次选择Edit> Project Settings打开项目配置窗口对项目进行配置。在打开的项目配置窗口中选择Player模块,在右侧功能区正确填写Company Name和Product Name,其他暂时全保持默认即可[ 项目配置窗口是设置管理各类项目属性、功能特性的地方,与项目所有功能特性、发布相关配置均在这里设置,在开发实际项目时需要认真详细填写项目配置窗口的各属性,以使发布的应用达到预期和优化性能。]。
  由于MR应用在Unity中被归类为XR应用类型,如果仅进行以上配置,最后生成发布的应用运行后是以窗口形式展现的2D应用,因此还需要激活Unity的XR功能,可以有两种方式进行设置。

(1)、使用XR Plugin Management

在项目配置窗口中选择XR Plug-in Management模块,在右侧面板中点击Install XR Plugin Management安装XR插件,在安装完成后,勾选“Initialize XR on Startup”和“Windows Mixed Reality”属性多选框,然后选择左侧XR Plug-in Management模块下新添加的“Windows Mixed Reality”子模块,按需勾选功能,这里暂时保持默认设置,如图7所示。

图7 使用XR Plugin Management设置XR功能

(2)、使用Legacy XR

  在项目配置窗口中选择Player模块,展开UWP平台下的XR Settings卷展栏,勾选“Virtual Reality Supported”属性多选框,单击Virtual Reality SDKs下方的“+”图标,选择“Windows Mixed Reality”以添加Windows Mixed Reality SDK。
尔后在出现的面板中设置Depth Format属性为16-bit Depth、勾选Enable Depth Buffer Sharing多选框、Stereo Rendering Mode属性为Single Pass Instance、根据需要勾选WSA Holographic Remoting Supported属性,如图8所示。

图8 使用Legacy XR设置XR功能

  我们建议采用第1种方式设置XR功能,第2种设置方式已经在Unity 2020版本中被移除,为了保持叙述完整性这里一并进行了介绍[ 本书后文有部分内容依赖Legacy XR设置方式,在相应内容部分会有特别提示。]。

(七)、 创建和设置场景

  在Unity菜单中,依次选择Mixed Reality Toolkit > Add to Scene and Configure,MRTK会自动在当前场景中添加必须的游戏对象,并为MR使用配置好Main Camera对象的各属性。
在Hierarchy窗口中,选择MixedRealityToolkit游戏对象,然后在Inspector窗口中,选择MixedRealityToolkit组件下的主配置文件为DefaultHoloLens2ConfigurationProfile,如图9所示,使用默认的HoloLens2配置文件。

图9 使用默认的HoloLens2配置文件

  作为演示,我们在场景中新创建一个立方体对象,调整立方体边长为0.2,适当调整一下立方体位置和角度,以使其能在MR应用启动时被看到,其他保持默认。

(八)、 导出Unity工程

  为更好的控制生成过程,我们首先需要将Unity工程导出为Visual Studio工程,在Unity菜单中,依次选择File > Build Settings,打开构建设置窗口,如图10所示。在构建设置窗口中添加场景,设置Target Device属性为Any Device、Architecture属性为X64,并根据需要设置其他属性,设置完成后,点击“Build”按钮将其构建到一个空的目标文件夹中。

图10 Unity工程导出设置

本文标签: 之路