准备工作

unity版本要求

可以选择尽量高的版本

VisualStudio 安装及C#环境配置

如果已下载过VisualStudio,在菜单里搜索Visual Studio Installer即可再次下载

  1. 下载:下载地址
  2. 安装过程中,在工作负载界面勾选使用C++的桌面开发使用Unity的游戏开发(勾选"Visual Studio Tools for Unity"和"C#和VisualBasic")和`通用Windows平台开发,在右边的可选框勾选USB设备连接性C++(v142)通用Windows平台工具;在单个组件搜索Windows SDK,下载所有版本的sdk
  3. 打开unity,新建一个项目
  • 安装插件Visual Studio Editor
    • Windows Package Manager
    • +号旁边的In Project改为Unity Registry,然后在左边下拉菜单中找到Visual Studio Editor,点击Install安装
  • 设置外部工具:
    • 点击菜单栏EditPreferences…
    • 打开Preferences偏好设置界面,将External Tools中外部脚本编辑器External Script Editor设置为visual studio 2022(改成自己使用的版本)
    • 后点击下方 重新生成项目文件Regenerate project files按钮,会重新生成解决方案文件跟项目文件

MRFT下载

该方法目前只适用于Windows系统

  1. 简介:微软公司推出的用来导入MRTK工具包的快捷化方式,其最大好处是可以直观地看到所有MR应用开发所需要的工具包集合,并且可以选择加载指定版本
  2. 下载:下载地址

Hololens Remoting Player 下载

在Hololens2的Microsoft Store搜索并下载应用

unity项目创建及配置

新建unity项目

如果项目创建不了,可以尝试更改项目名称

核心选择3D

导入MRTK包

  1. 打开之前下载好的MRFT工具,等待工具加载完成后,点击Start
  2. 点击Project Path的三个点,选择需要导入MRTK工具的unity项目路径(即在你电脑中存储的位置),点击Discover Features
  3. 点击Mixed Reality Toolkit的“+”号,选择Mixed Reality Toolkit ExtensionsMixed Reality Toolkit FoundationMixed Realty Toolkit Standard AssetsMixed Reality Toolkit Tools

Mixed Realty Toolkit Tools一定要勾选,否则在unity项目中上方Mixed RealtyToolkit没有Toolbox选项

  1. 点击Platform Support的“+”号,选择Mixed Realty OpenXR Plugin,然后点击Get Features
  2. 点击Validate ,在弹窗弹出No validation issues were ditected.后,点击Import
  3. 点击Approve,确认引入
  4. 切回unity项目界面,如果在引入完后弹出MRTK Project Configurator,并且上方出现Mixed Realty按钮,则项目导入MRTK包成功

如果切回unity项目后要求重启项目,按照要求重启即可,正常现象

项目配置

基础配置

  1. 点击FileNew SceneBasic(Built-in)Create,然后保存场景(右键新创建的场景,选择Save Scene,保存到项目的文件夹下,可新建一个用来存储场景的文件夹)
  2. 点击FileBuild Settings
    1. Scenes in Build右下方点击Add Open Scenes,选择新建的场景,并进行勾选
    2. 点击左下方Player Settings...,点击左方的XR Plug-in Management
      1. 点击Universal Windos Platfoem settings,即Windows图标,勾选Initialize XR on Startup,这里会进行下载,下载完成后,勾选Plug-in ProvidersOpen XRMicrosoft Hololens feature group
      2. 点击左方XR Plug-in Management目录下的Project Validation,点击Fix All,重复点击直到没有错误为止(有黄色的提示不算错误)
      3. 点击左方XR Plug-in Management目录下的OpenXR,勾选OpenXR Feature Groups下的Microsoft Hololens,并在右方勾选Hand Interaction PosesHand TrackingMotion Controller Model
      4. 关闭Project Settings
    3. 在左方的Platform中选择Universal Windows Platform,设置
      1. ArchitectureARM 64-bit
      2. Build TypeD3D Project
      3. Visual Studio VersionLatest installed
      4. Build and Run onLocal Machine
      5. 点击Switch Platform
  3. 让项目在Hololens2中以3D形式呈现
    1. 点击上方WindowTextMeshProImport TMP Essential Resources

MRTK配置

  1. 引入MRTK工具:点击上方Mixed RealityToolkitUtilitiesConfigure Project dor MRTK

该操作会自动替换项目原有的CameraMixedRealtyPlayspace

请不要随意更改MixedRealtyPlayspace的位置,否则会出现Play模式下的位置与导入到Hololens2中的初始位置不符的情况

  1. 设置MixedRealityToolkit
    1. 点击Hierachy中的MixedRealtytoolkit,然后在Inspector即可进行更改
    2. View Asset左方的下拉选项选择DefautMixedRealtyToolkitConfigurationProfile,然后点击Copy & Customize,并在弹出的Clone Profile弹窗中更改Profile Name,然后点击Clone(以后统称这一步为Clone)
    3. 点击InputClone
      1. Pointers可更改射线长度和颜色
      2. ArticulatedClone(设置手部的现实方式)
    4. 点击Spatial Awareness,取消勾选Enable Spatial Awareness System
      1. 该操作的目的是取消空间扫描和生成三角面片
    5. 点击DiagnosticsClone,取消勾选Show Diagnostics
      1. 该操作的目的是关闭数据显示

交互例子

ObjectManipulatorNearInteractionGrabbable 脚本支持 手部和运动控制器 输入模型的 直接操作 模态。 向对象附加脚本后,用户可以手来移动、缩放或旋转该对象。我们将创建一个立方体,向它们附加必要的脚本,然后四处移动它们。

添加并调整立方体

  • 右击场景名,选择 GameObject > 3D 对象 > 立方体

立方体的默认大小为 1 m,这对我们来说太大了。 我们将它缩小到

  • 选择该立方体,然后在 Inspector 中将立方体的 Tranform/Scale 值更改为

立方体在场景中的默认位置为 。 这意味着立方体与用户的头戴显示设备位于同一位置,用户无法看到立方体,直到他们向后移动。 我们将更改立方体的位置值,使它位于更便于查看的位置。

  • Inspector 中,将立方体的 Tranform/Position 值更改为

向立方体添加脚本

若要使对象在使用跟踪手时可抓取,必须附加三个组件:

  1. 碰撞体组件(无需在此执行任何操作 - Unity 立方体默认已附加盒型碰撞体)
  2. 对象操控器(脚本) 组件
  3. NearInteractionGrabbable(脚本)组件
  • 立方体仍然处于选定状态时,在 Inspector 窗口中,单击 Add Component 按钮,然后搜索并选择 Object Manipulator 脚本。

ObjectManipulator 脚本能够让对象变得可移动、可缩放和可旋转,这些操作可通过一只或两只手来实现。 添加 Object Manipulator 脚本时,系统会自动添加 Constraint Manager 脚本,因为前者依赖于后者。

  • 重复相同的步骤,向立方体添加 NearInteractionGrabbable 脚本。

通过 NearInteractionGrabbable 脚本,用户能使用模拟手来触碰和抓取附近的对象。

项目部署

  1. unity中点击上方FileBuild Settings,点击右下方Build,选择build出的文件存放位置后build
  2. build完成后,点击对应的.sln文件(此时应进入Visual Studio 界面)
  3. 更改DebugRelease ,更改X64Arm64,并选择远程计算机(Debug,Release,Master三者应该都行,只不过我个人更喜欢设置为Release)
  4. 点击项目属性,点击左边配置属性调试
    1. 打开Hololens2,并打开之前下载好的Hololens Remoting Player,查看橙色数字(例如:172.18.6.170),并将其输入到计算机名对应的属性框中
    2. 设置部署Visual C++ 调试运行库

远程部署

请确认你的Hololens2与电脑连接的是同一Wi-Fi;如果不是,请调整网络连接并重新输入计算机名

  1. 局限性:只适用于较小(<500MB)的项目
    1. 部署并直接打开:直接点击远程计算机
    2. 只部署,不自动打开:点击上方生成部署解决方案

本地部署

将你的Hololens2设备连接到你的计算机上

请确认你的Hololens2与电脑连接时一直保持开机状态,否则会很容易部署失败

  1. 远程计算机该死设备,并直接点击

如果一次部署失败,请重新点击设备进行部署