HoloLens2 设备的 MR项目开发技术实验

关于微软对混合现实技术的介绍===
官方文档:https://learn.microsoft.com/zh-cn/windows/mixed-reality/

开发环境配置===
官方参考文档:https://learn.microsoft.com/zh-cn/windows/mixed-reality/develop/install-the-tools

1.使用unity 2020.3.3以上版本
2.使用VS2022
3.Windows 10 系统
4.Windows 10 SDK 10.0.18362.0 或更高版本(可以在安装VS的时候勾选)
5.Mixed Reality Feature Tool(MRTK unity可用的插件)

创建工程===
官方参考文档:https://learn.microsoft.com/zh-cn/training/modules/learn-mrtk-tutorials/1-1-introduction

组件使用实例===
官方参考文档:https://learn.microsoft.com/zh-cn/windows/mixed-reality/mrtk-unity/mrtk2/?view=mrtkunity-2022-05

1.做一个可以触摸的 Cube

使用组件:
BoxCollider
Interactable (MRTK 可交互组件)
NearInteractionTouchable (MRTK 近距离互动触碰事件检测器)

组装过程:
1.创建一个 Cube
2.添加 BoxCollider
3.添加 Interactable
3.添加 NearInteractionTouchable
4.通过任意脚本向 Interactable 组件添加 触摸事件的接收器,并给接收器注册触摸事件的处理函数,参考代码:
transform.GetComponent()
.AddReceiver()
.OnTouchStart
.AddListener(() =>
{
Debug.Log(“物体被触摸了”);
});

效果描述:启动程序后,使用手部触摸cube,NearInteractionTouchable 会发送被触摸的消息到最近的 Interactable 组件(向上遍历),直到有一个 Interactable 组件表示受理了这条信息(体现为 eventData.use() ),然后 console 上输出一行 “物体被触摸了”的提示信息;

拓展信息:
-当碰撞体大小发生改变的时候,需要到 NearInteractionTouchable 组件上 点击一下 “Fix xxx”,NearInteractionTouchable 组件会自动适配新的碰撞体范围;
-Interactable 组件可以赋予 GameObject 数种互动效果,除了点击外,Interactable 的其他互动效果都需要手动注册一个事件接收器,基本过程都和触摸的大同小异;

2.做一个可以自动跟随的UI面板

使用组件:
Follow (MRTK 求解器的一种)
SolverHandler (MRTK 处理求解器数据的组件)

组装过程:
1.创建一个空GameObject
2.添加 Follow
3.添加 SolverHandler
4.添加 Canvas,Canvas 的 RenderMode 设置为 WorldSpace
5.在 Canvas 下使用UGUI相关的组件拼成一个常见的UI面板

效果描述:启动程序后,会有一个UI面板出现在你的视野范围内,并且会跟随你视野和人物的移动。

拓展信息:
-UI面板会始终与你的人物保持一定距离,可以通过修改 Follow 组件的 “Distance”相关参数来调整这一效果。
-UI面板会始终会在你的视野范围内,可以通过修改 Follow 组件的 “Direction”相关参数来调整这一效果。
-Follow 求解器计算的跟随目标可以通过 修改 SolverHandler 组件的 “TrackedTargetType”来调整,默认选项是 Head (跟随设备穿戴者头部的位置和视野方向)。
-除了 Follow 求解器,MRTK还提供了很多其他功能的求解器,原理基本相似。
-SolverHandler 还可以设置的UI跟随面板添加位置和旋转偏移量,可以根据实际情况做些调整。

3.做一个可以自动吸附到某个位置Cubu

使用组件:
BoxCollider
Rigidbody
ObjectManipulator(MRTK 对象操纵器)
ConstraintManager(MRTK 约束管理器,添加ObjectManipulator时会自动绑定这个组件)
NearInteractionGrabbable(MRTK 近距离互动抓取事件检测器)
Dockable(MRTK 可停靠脚本)
DockPosition(MRTK 停靠坐标脚本)

组装过程:
1.创建一个空GameObject做为停靠点,同时添加以下组件
Rigidbody
BoxCollider
DockPosition

2.创建一个Cube,同时添加以下组件
BoxCollider
ObjectManipulator
ConstraintManager(这个是自动添加得)
NearInteractionGrabbable
Dockable

3.空GameObject的 BoxCollider 调整为合适的大小(因为自动吸附的物体会自动适应这个碰撞盒的大小)

效果描述:启动程序后,因为 Cube 上的 ObjectManipulator 组件,使得你可以使用手或者手部射线对 Cube进行移动,缩放,旋转等基本变换操作,你可以将Cube移动到停靠点,当你解除对Cube的控制时,Cube会自动吸附到停靠点,并按照停靠点的变换值调整自身的旋转和缩放。

拓展信息:
-这是一个实验性质的功能
-每个停靠点只能停靠一个物体,也因此可以用另外一个同样配置的Cube将停靠点的Cube“挤” 出来

项目部署到HoloLens2===
官方参考文档:https://learn.microsoft.com/zh-cn/windows/mixed-reality/develop/advanced-concepts/using-visual-studio?tabs=hl2

1.在BuildSettings里面,将目标平台切换为 UWP(微软通用平台)
2.将Architectru属性设置为 ARM64
3.将Build configuration属性设置为 Release
4.点击build,等待编译
5.编译期间进行下列准备:
-启动你的HoloLens2设备,并进行登录
-确保你的HoloLens2设备和你开发用的PC机器在同一个局域网,并记录HoloLens2的局域网IP地址
-确保你的HoloLens2设备开启了开发人员模式

6.在build完毕后,找到build出来的文件夹,在文件夹里面找到.sln结尾的文件,使用vs打开(我这里用的是VS2022),然后做下列操作:
-解决方案内有3个项目,确保设置 (Universal Windows)这个方案为启动项
-找到 调试 菜单栏,点击打开菜单 找到最后一项 (你工程名字) 调试属性,打开后在配置属性里面找到 调试 这一项,然后调试属性的详情界面找到“计算机名”这一项,在这里输入你的 HoloLens2 设备的局域网IP地址。
-将发布配置设置为Release
-将发布平台设置为ARM64
-将发布方式选为“远程计算机”

7.点击 “远程计算机” 进行编译和发布,在进行第一次编译发布时,VS会要求你输入
HoloLens2设备的配对码,你需要到HoloLens2设备的开发人员选项中点击“配对”按钮生成配对码,然后将这个配对码输入到VS后,等VS完成发布即可完成所有部署操作。

  • 15
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你好!对于使用Unity开发Hololens 2的MR应用程序,你可以参考以下步骤: 1. 安装所需的软件和工具:首先,确保你已经安装了Unity引擎和Hololens 2的开发工具包(HoloLens 2 Development Edition)。可以从Unity官网下载Unity引擎,而Hololens 2的开发工具包可以从Microsoft官网获取。 2. 创建新项目:打开Unity引擎并创建一个新项目。选择3D模板,并确保选择了Universal Windows Platform作为目标平台。 3. 配置项目设置:在Unity中,进入“Edit”菜单,然后选择“Project Settings”和“Player”。在Inspector窗口中,展开“Universal Windows Platform”选项卡,确保选择了正确的目标设备Hololens 2)。 4. 导入Hololens 2的软件包:使用Unity的Package Manager导入Hololens 2的软件包,这将提供Hololens 2的功能和性能支持。 5. 创建场景和对象:使用Unity的编辑器创建场景,并向场景中添加所需的3D对象、UI元素和其他交互元素。 6. 调整摄像机设置:对于Hololens 2应用程序,摄像机设置非常重要。确保将摄像机设置为适应Hololens 2的视野范围和显示要求。 7. 添加MR功能:使用Hololens 2的软件包中提供的API和组件,添加MR功能,如手势识别、语音识别和空间映射等。 8. 进行测试和调试:在Unity引擎中,可以使用模拟器进行初步的测试和调试。但是最好在实际的Hololens 2设备上进行真实环境的测试。 9. 构建和部署应用程序:完成应用程序开发后,使用Unity引擎的构建工具将应用程序打包为Hololens 2所需的应用程序包(.appx)。然后,将该应用程序包部署到Hololens 2设备上进行使用。 希望这些步骤能够帮助你开始使用Unity开发Hololens 2的MR应用程序!如有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值