准备工作

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安装
  • 设置外部工具:
    • 点击菜单栏Edit→Preferences…
    • 打开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 Extensions、Mixed Reality Toolkit Foundation、Mixed Realty Toolkit Standard Assets、Mixed Reality Toolkit Tools

Mixed Realty Toolkit Tools一定要勾选,否则在unity项目中上方Mixed Realty—Toolkit没有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. 点击File—New Scene—Basic(Built-in)—Create,然后保存场景(右键新创建的场景,选择Save Scene,保存到项目的文件夹下,可新建一个用来存储场景的文件夹)
  2. 点击File—Build 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 Providers—Open XR—Microsoft 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 Poses、Hand Tracking、Motion Controller Model
      4. 关闭Project Settings
    3. 在左方的Platform中选择Universal Windows Platform,设置
      1. Architecture为ARM 64-bit
      2. Build Type为D3D Project
      3. Visual Studio Version为Latest installed
      4. Build and Run on为Local Machine
      5. 点击Switch Platform
  3. 让项目在Hololens2中以3D形式呈现
    1. 点击上方Window —TextMeshPro— Import TMP Essential Resources

MRTK配置

  1. 引入MRTK工具:点击上方Mixed Reality—Toolkit—Utilities—Configure Project dor MRTK

该操作会自动替换项目原有的Camera为MixedRealtyPlayspace

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

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

交互例子

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

添加并调整立方体

  • 右击场景名,选择 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中点击上方File—Build Settings,点击右下方Build,选择build出的文件存放位置后build
  2. build完成后,点击对应的.sln文件(此时应进入Visual Studio 界面)
  3. 更改Debug为Release ,更改X64为Arm64,并选择远程计算机(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. 将远程计算机该死设备,并直接点击

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