第一周:MRTK-hololens2-手控/语音/眼控立方体颜色

操作1 抓取立方体

组件

在新建的立方体下面挂载三个组件(可以搜索选择)

1.Constraint Manager
        约束管理器组件 用于管理该物体身上所有已挂载的组件 包括呈现,激活,添加等
2.Object Manipulator
        物体操作器  该组件可以对一些行为配置 包括用几只手操作,是否有物理特性,何时激活事件
3.NearInteractionGrabbable
        这是近距离交互里面的抓取组件

操作2 注视立方体变色

代码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;


public class ColorChanging : MonoBehaviour
{
    public Material GreenMaterial;
    public Material RedMaterial;
    public Material BlueMaterial;
    public Material YellowMaterial;
    private Material PreviousMaterial;
    
    

声明了四个材质属性变量,unity中拖来赋值。
而指定了public意味着当前变量可以被其他的脚本或者组件进行修改
而private的变量只能在当前类的实例使用

    void Start()
    {
        PreviousMaterial = GetComponent<Renderer>().material;
    }

    // Update is called once per frame
    void Update()
    {
        
    }

   

GetComponent<组件名>()是十分常用的方法,用来“获取挂载该脚本的游戏对象下面的某一组件
此处获取Renderer组件下面的属性material,并将值赋给material变量PreviousMaterial,后面就可以通过修改脚本属性previousMaterial来修改该游戏对象render下面的材质属性了

    public void TurnRed()
    {
        GetComponent<Renderer>().material = RedMaterial;

        PreviousMaterial = RedMaterial;
    }

    public void TurnBlue(){...}

    public void TurnGreen(){...}

    public void TurnYellow(){...}

    public void TurnBack()
    {
        GetComponent<Renderer>().material = PreviousMaterial;
    }
}

定义的一系列方法,当前游戏对象下的render组件下的material属性修改为redmaterial变量值

组件

还有MRTK的input(添加eye 在input simulator中eye换成mouse)和pointer启用eye tracking

配置

预.代码中检查是否有校准数据

返回true表明该用户眼动校准数据可用,返回false表明校准的数据不可用,null是没有检测到该用户校准数据

1.对当前构建应用启用凝视功能

2.添加凝视数据提供者

整个MRTK配置文件—>输入系统的配置文件—>眼动追踪的配置文件 
 

3.启用眼动追踪指针

4.详细参数设置
游戏对象camera之下的组件GazeProvider设置


lock cursor when focus locked(锁定焦点是锁定光标 此时不追踪眼动)
set fursor invisible when focus locked(锁定光标时设置不可见)
max gaze collision distance(最大碰撞距离)
raycast layer masks(射线检测层掩码设置可以与能试输入进行射线检测的游戏对象层)
stored stability samples(眼动采样频率)
min/max velocity threshold(头部速度阈值范围)

5.选择模拟器

效果展示

原始

手操控

鼠标注视即变色

未解之谜


该处的type找不到Microsoft.MixedReality.Toolkit.WindowsMixedReality.Input下的windows mixed reality eye gaze data provider

  • 6
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本篇学习笔记将介绍HoloLens 2 的 EyeTracking(眼动跟踪)和语音识别功能,以及如何在MRTK(Mixed Reality Toolkit)中进行开发。 EyeTracking HoloLens 2 的 EyeTracking 功能可以让用户通过视线在应用程序中进行选择和交互,而无需使用手势或语音命令。在MRTK中,我们可以使用EyeTrackingProvider来获取眼动跟踪数据。 首先,我们需要在MRTK中启用EyeTrackingProvider。在Unity中打开MRTK的配置文件,选择Eye Tracking选项卡,勾选Enable Eye Tracking选项,并将Update Interval设置为0.01。 接下来,在我们的场景中添加一个Cube,并将其设置为Interactable,这样用户可以使用眼动跟踪来选择它。然后,我们需要将EyeTrackingTarget组件添加到Cube上,这将使其成为眼动跟踪的目标。 最后,在我们的脚本中,我们可以使用EyeTrackingProvider来获取当前视线所在的位置,并将其用于交互。例如,我们可以在Update函数中检查是否正在注视着目标,并执行相应的操作: ```csharp using UnityEngine; using Microsoft.MixedReality.Toolkit.Input; public class EyeTrackingInteraction : MonoBehaviour { private EyeTrackingTarget target; private void Start() { target = GetComponent<EyeTrackingTarget>(); } private void Update() { if (target.IsBeingLookedAt) { // Do something } } } ``` 语音识别 HoloLens 2 的语音识别功能可以让用户通过语音命令在应用程序中进行选择和交互。在MRTK中,我们可以使用SpeechInputHandler来处理语音输入。 首先,我们需要在MRTK的配置文件中启用语音识别,选择Input选项卡,勾选Enable Speech Input选项,并选择我们要识别的语言。 接下来,在我们的场景中添加一个Cube,并将其设置为Interactable,这样用户可以使用语音命令来选择它。然后,我们需要将SpeechInputHandler组件添加到Cube上,这将使其能够接收语音输入。 最后,在我们的脚本中,我们可以使用SpeechInputHandler来处理语音输入,并将其用于交互。例如,我们可以在OnSpeechKeywordRecognized函数中检查识别到的关键字,并执行相应的操作: ```csharp using UnityEngine; using Microsoft.MixedReality.Toolkit.Input; public class SpeechInteraction : MonoBehaviour { private void Start() { var speechInputHandler = GetComponent<SpeechInputHandler>(); speechInputHandler.OnSpeechKeywordRecognized += OnSpeechKeywordRecognized; } private void OnSpeechKeywordRecognized(SpeechEventData eventData) { if (eventData.Command.Keyword == "select") { // Do something } } } ``` 总结 HoloLens 2 的 EyeTracking 和语音识别功能可以使用户更加方便地与应用程序交互。在MRTK中,我们可以使用EyeTrackingProvider和SpeechInputHandler来处理眼动跟踪和语音输入。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值