Hololens开发学习笔记-4

25 篇文章 4 订阅
16 篇文章 1 订阅

3D对象交互

下载资源包:MRTK.HoloLens2.Unity.Tutorials.Assets.GettingStarted.2.3.0.3.unitypackage

按照之前教程中的方法把资源包导入项目;

项目中对象可以在Hierarchy面板中,对象的前面有个小眼睛,点击一下会隐藏

创建对象集合

1、在Hierarchy中创建一个空对象,命名为3DObjectCollection,坐标设置为x=0,y=-0.2,z=2;

2、在Assets中,Assets>MRTK.Tutorials.GettingStarted>Prefabs;

3、会看到有Cheese、CoffeeCup、EarthCore、Octa、Platonic、TheModule六个预制体,全选,然后拖到3DObjectCollection中,设置为3DObjectCollection的子集;

4、在Hierarchy中创建三个Cube,尺寸全部修改为0.15;

5、为3DObjectCollection添加GridObjectCollection脚本,并将SortType修改为ChildOrder,然后点击UpdateCollection更新集合;

6、为上面创建的三个Cube添加不同颜色的材质球,资源包中的材质球位置为:Assets>MixedRealityToolkit.SDK>StandardAssets>Materials,选中材质球拖到Cube上即可;

7、官方文档中给出的的材质球为:MRTK_Standard_GlowingCyan,MRTK_Standard_GlowingOrange,MRTK_Standard_Green。材质球可自行选择。

添加操作脚本

1、全选3DObjectCollection下的子对象,在Inspector中点击AddComponent,搜索ManipulationHandler,添加此脚本;

2、Cube对象不做处理;

3、选中Cube1对象,将TwoHandedManipulation改为Scale,此操作为更改用对象大小;

4、选中Cube2对象,将Constrains下的ConstraintOnMovement修改为FixDistanceFromHead,此操作为移动对象时与用户保持相同距离;

5、Cheese、CoffeCup、EarthCore对象不做处理;

6、选中Octa对象,取消勾选AllowFarManipulation,此操作为取消远程操作,用户不可以通过辅助线来操作该对象;

7、选中Platonic对象,把OneHandRotationModeNear和OneHandRotationModeFar都修改为RotateAboutObjectCenter,此操作为旋转对象时,对象围绕自身中心旋转;

8、选中TheModule对象,在Inspector中添加RegidBody脚本,然后取消勾选重力引擎UseGravity;此操作为为对象添加物理引擎(刚体),但是取消掉重力引擎;

9、选中EarthCore对象,在Inspector中添加BoundingBox脚本,此操作为为对象添加一个边界框,用来操作该对象;

10、运行,查看效果;

添加触摸效果

1、选中Octa对象,在Inspector中添加AudioSource脚本,把SpatialBlend修改为1,用来启用空间音频;

2、继续为Octa对象添加NearInteractiontouchable脚本,然后点击FixBounds和FixCenter,用来修正触摸边界属性,此脚本为近距离可触摸脚本;

3、继续为Octa添加一个HandInteractionTouch脚本,此脚本为手动交互触摸脚本;

4、在HandInteractionTouch脚本的OnTouchStarted地方,点击“+”号新建一个事件,将Octa对象拖入此事件中;

5、继续在这个地方的后面的下拉选项中,选择AudioSource>PlayOneShot(AudioClip),然后再下面选择声音资源;

6、官方资源包的音频资源位置为:Assets>MixedRealityToolkit.SDK>StandardAssets>Audio,官方文档选择的是MRTK_Gem音频;

7、运行查看效果,远程触碰无效,需要触手触碰到八面体的时候才会播放音乐并且出现变色效果;

本节结束

官方链接:https://docs.microsoft.com/zh-cn/windows/mixed-reality/mrlearning-base-ch4

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本篇学习笔记主要讲解 HoloLens 2 开发入门教程中的 MRTK(Mixed Reality Toolkit)的 EyeTracking 和语音识别功能。 ## EyeTracking HoloLens 2 中的 EyeTracking 功能可以让应用程序能够检测用户的注视点,并根据注视点来响应相应的操作。MRTK 提供了一些组件来支持 EyeTracking 功能。 ### GazeProvider GazeProvider 是一个 MRTK 组件,它可以检测用户的注视点,并在场景中放置一个 Gaze Cursor(注视光标)来指示用户的注视点。要使用 GazeProvider,需要将它添加到场景中的一个物体上。 ### EyeTrackingTarget EyeTrackingTarget 是一个 MRTK 组件,它可以将一个物体标记为 EyeTracking 的目标。当用户的注视点在该物体上时,可以触发相应的操作。要使用 EyeTrackingTarget,需要将它添加到场景中的一个物体上,并设置它的 Trigger Type(触发类型)和 Action(操作)。 ### 示例 以下代码演示了如何在 HoloLens 2 上使用 EyeTracking 功能: ```csharp using UnityEngine; using UnityEngine.XR.WSA.Input; using Microsoft.MixedReality.Toolkit.Input; public class EyeTrackingExample : MonoBehaviour { private GazeProvider gazeProvider; private GameObject targetObject; void Start() { gazeProvider = FindObjectOfType<GazeProvider>(); targetObject = GameObject.Find("TargetObject"); } void Update() { if (gazeProvider.GazeTarget != null && gazeProvider.GazeTarget == targetObject) { Debug.Log("Gaze detected on target object."); } } } ``` ## 语音识别 HoloLens 2 中的语音识别功能可以让应用程序能够识别用户的语音指令,并根据指令来响应相应的操作。MRTK 提供了一些组件来支持语音识别功能。 ### SpeechInputHandler SpeechInputHandler 是一个 MRTK 组件,它可以将一个物体标记为语音输入的目标。当用户说出相应的语音指令时,可以触发相应的操作。要使用 SpeechInputHandler,需要将它添加到场景中的一个物体上,并设置它的 Keywords(关键词)和 Actions(操作)。 ### 示例 以下代码演示了如何在 HoloLens 2 上使用语音识别功能: ```csharp using UnityEngine; using Microsoft.MixedReality.Toolkit.Input; public class SpeechInputExample : MonoBehaviour, IMixedRealitySpeechHandler { public void OnSpeechKeywordRecognized(SpeechEventData eventData) { if (eventData.Command.Keyword == "Hello") { Debug.Log("Hello command recognized."); } } } ``` 需要注意的是,在使用语音识别功能之前,需要先在 MRTK 的配置文件中启用语音识别功能,并添加相应的语音指令。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值