You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用MRTK3为Hololens2(Unity2022)实现凝视触发文本显示

在Unity 2022 + MRTK3 + HoloLens2中实现凝视触发文本显示功能

一、项目基础配置

  • 打开Unity 2022,创建3D URP项目(HoloLens开发推荐使用URP管线)
  • 导入MRTK3:打开Window > Package Manager,切换到Unity Registry,搜索并导入Mixed Reality Toolkit Foundation和Mixed Reality Toolkit Standard Assets
  • 运行MRTK配置向导:点击Mixed Reality > Toolkit > Configure Project for MRTK,选择HoloLens 2作为目标设备,按照向导完成所有配置步骤

二、搭建场景元素

  • 添加球体:右键场景层级面板 > 3D Object > Sphere,调整位置到视野前方(例如(0, 1, -2)),确保球体带有默认的Sphere Collider(必须有碰撞体才能接收凝视事件)
  • 添加提示文本:右键场景层级面板 > 3D Object > TextMeshPro - Text,调整文本内容和位置(放在球体附近),初始状态设置为禁用(取消勾选GameObject的激活框)

三、编写凝视触发脚本

创建一个C#脚本实现凝视计时逻辑:

  1. 在Project面板右键 > Create > C# Script,命名为GazeTriggerText
  2. 打开脚本,替换为以下代码:
using UnityEngine;
using Microsoft.MixedReality.Toolkit.Input;
using TMPro;

public class GazeTriggerText : MonoBehaviour, IMixedRealityGazeHandler
{
    [Header("凝视参数")]
    public float gazeThreshold = 3f; // 触发文本显示的凝视时长阈值
    public GameObject targetText; // 要显示的文本对象

    private float currentGazeDuration = 0f;
    private bool isGazingAtObject = false;

    void Start()
    {
        // 确保文本初始为隐藏状态
        if (targetText != null)
        {
            targetText.SetActive(false);
        }
    }

    void Update()
    {
        if (isGazingAtObject)
        {
            currentGazeDuration += Time.deltaTime;
            // 达到阈值时显示文本
            if (currentGazeDuration >= gazeThreshold)
            {
                if (targetText != null && !targetText.activeSelf)
                {
                    targetText.SetActive(true);
                }
                // 停止计时避免重复触发
                isGazingAtObject = false;
            }
        }
    }

    // 凝视进入物体时触发
    public void OnGazeEntered(GazeEventData eventData)
    {
        isGazingAtObject = true;
        currentGazeDuration = 0f; // 重置计时
    }

    // 凝视离开物体时触发
    public void OnGazeExited(GazeEventData eventData)
    {
        isGazingAtObject = false;
        currentGazeDuration = 0f;
    }
}
  1. 将脚本挂载到球体对象上,在Inspector面板中:
    • 把之前创建的文本对象拖到Target Text字段
    • 根据需求调整Gaze Threshold的数值(默认3秒)

四、配置MRTK输入系统

  • 确保场景中存在MixedRealityToolkit对象:如果没有,右键场景层级面板 > Mixed Reality > Add Mixed Reality Toolkit to Scene
  • 选中MixedRealityToolkit对象,在Inspector的Input System标签下,确认Gaze Input处于启用状态
  • 检查Gaze Provider设置,确保Head Gaze Enabled为勾选状态(HoloLens 2的凝视基于头部追踪)

五、测试与部署

  • 编辑器测试:点击Play按钮,按住Alt键拖动鼠标模拟头部转动,当光标(凝视点)停留在球体上超过阈值时间,文本会自动显示
  • HoloLens 2部署:打开File > Build Settings,切换平台到Universal Windows Platform,设置设备为HoloLens,点击Build生成UWP包后部署到设备

内容的提问来源于stack exchange,提问作者Khushi Naik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 23:17:44