使用Unity对Hololens2构建UI界面

本文详细介绍了使用MRTK2在Hololens2开发中构建UI和实现交互功能的方法,涉及NearInteractionGrabbable、ObjectManipulator和ARButton组件的使用,旨在提供UI构建方面的实用经验。
摘要由CSDN通过智能技术生成

请添加图片描述

参考文档

MRTK工具包-Hololens2开发

关于本文

目前也有很多对于Hololens2开发的文章,我就不重复了,但是我发现对于UI构建并没有人提过,所以在这里把我开发过程中总结的经验谈一下,希望对大家有帮助。

本文以MRTK2工具包为例,现在已经出到3了,逻辑好像变了一些,我没有去了解。

AR脚本

MixedRealityToolkit

MRTK工具包的配置工具,这里指的是指针工具 里面有很多选项

在这里插入图片描述

NearInteractionGrabbale

将“NearInteractionGrabbable”组件添加到任何具有**可碰撞对象(Colider)**的游戏对象 在它上面,以使可碰撞的几乎可以抓住。

然后,任何IMixedRealityNearPointer 都将调度指针事件 到最近的近似可抓取对象。

此外,当 修饰对象是离近指针最近的对象

[UnityEngine.AddComponentMenu("Scripts/MRTK/Services/NearInteractionGrabbable")]
public class NearInteractionGrabbable : UnityEngine.MonoBehaviour
  • Inheritance

    UnityEngine.MonoBehaviour ->NearInteractionGrabbable

  • Attributes

    UnityEngine.AddComponentMenuAttribute

Constructors

NearInteractionGrabbable()

无参数的构造函数

Fields

IsBoundsHandles 用于将此交互抓取指定为边界句柄
ShowTetherWhenManipulating 显示在AR环境中从手指指向虚拟物体的线条,对于调整大小旋转很有帮助。

NearinteractionTouchable

将NearinteractionTouchable添加到场景中并且配置一个可触摸的表面,当指针指向该表面时,并且可以获取到pointerDown和PointerUp事件。

[UnityEngine.AddComponentMenu("Scripts/MRTK/Services/NearInteractionTouchable")]
public class NearInteractionTouchable : Microsoft.MixedReality.Toolkit.Input.NearInteractionTouchableSurface

Constructors

NearInteractionTouchable()

Fields

bounds
debounceThreshold 你离这个平面多远会收到接触完成事件(Inherited from BaseNearInteractionTouchable)
eventsToReceive 接受的事件类型(Inherited from BaseNearInteractionTouchable)
localCenter 局部空间物体中心
localForward 局部空间物体前进方向
localUp 局部空间上方向
TouchableColider必须有一个BoxColider 作为可接触的计算边界和中心的承载体。默认使用物体上自带的Colider

NearInteractionTouchableSurfac

一个接近可交互的平面,可以在某个方向被触发

Properties

Bounds边界指定了触摸交互可以发生的位置,由LocalCenter LocalPressDirection指定的平面上的本地边界(正常边界)
DebounceThreshold在你将收到一个触摸完成事件时距离表面前面的距离
EventsToReceiveT要接受的事件类型
LocalCenter交互本地中心点
LocalPressDirection用户在这个元素上按下的方向

TouchableUnityUIClass

使用 unity RectTransform 作为可触摸面? 这个类可以把unity 的UI转化为 AR可交互面

首先添加画布 之后再预期可触摸的Gameobject上添加该组件,把接受事件设置为触摸。

只要实现 IMixedRealityTouchHandler 组件就可以实现可交互。

ObjectManipulator Class

ObjectManipulator Class (Microsoft.MixedReality.Toolkit.UI) | Microsoft Learn


这个类用于设置对象在被操控的过程中可以如何被操控 比如一只手、两只手、伸缩、旋转,还可以将脚本配置为仅启用某些操作,该脚本可用于Hololens的手势操作。

[UnityEngine.HelpURL("https://learn.microsoft.com/windows/mixed-reality/mrtk-unity/features/ux-building-blocks/object-manipulator")]
[UnityEngine.RequireComponent(typeof(Microsoft.MixedReality.Toolkit.UI.ConstraintManager))]
public class ObjectManipulator : UnityEngine.MonoBehaviour, Microsoft.MixedReality.Toolkit.Input.IMixedRealityFocusChangedHandler, Microsoft.MixedReality.Toolkit.Input.IMixedRealityPointerHandler, Microsoft.MixedReality.Toolkit.Input.IMixedRealitySourcePoseHandler, UnityEngine.EventSystems.IEventSystemHandler

AR Button

AR Button 元素组件组成,包括前背景板视觉效果,点击改变改变坐标的动态效果;语音识别和提示模块后背景板和画布。通过画布可以改变Button的颜色和效果;图标和文本框,显示按钮的图标和文本框组件
在这里插入图片描述
ARButton 检视器属性,每个属性可以影响在AR环境下的交互效果,例如,点击按钮时产生的视觉效果和声音交互效果
在这里插入图片描述
针对Button做出了一些解释,希望大家能够理解,使用

  • 29
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Stealmoon_9

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值