您的位置:首页 > 房产 > 建筑 > 长春iso认证公司_免费制作头像的网站_深圳最新消息今天_百度有免费推广广告

长春iso认证公司_免费制作头像的网站_深圳最新消息今天_百度有免费推广广告

2025/2/27 21:14:36 来源:https://blog.csdn.net/qq_44501691/article/details/145830808  浏览:    关键词:长春iso认证公司_免费制作头像的网站_深圳最新消息今天_百度有免费推广广告
长春iso认证公司_免费制作头像的网站_深圳最新消息今天_百度有免费推广广告

目录

一、插件介绍

二、主要组件

XR Interaction Manager

XR Controller

XR Interactor

XR Direct Interactor

XR Ray Interactor

XR Socket Interactor

三、XR Gaze Interactor

1、组件介绍

2、核心功能与特点

视线检测

跨平台兼容

事件驱动逻辑

无障碍设计

3、组件配置详解

4、工作原理

射线生成

碰撞检测

计时验证

事件分发

5、事件系统与脚本交互

示例脚本:注视计时进度条

6、与其他组件的协作

与 UI 系统的集成

与 XR Interaction Manager 的协同

与物理对象的交互

7、实际应用场景

场景1:无障碍菜单操作

场景2:凝视激活机关

场景3:混合交互(凝视+手柄)

8、优化与调试技巧

降低误触率

视觉反馈优化

性能调优

9、常见问题与解决

问题:视线无法检测到物体检查步骤:

问题:注视计时不准确解决:

问题:多设备兼容性问题适配方案:


一、插件介绍

Unity XR-XR Interaction Toolkit开发使用方法(一)-CSDN博客

Unity XR-XR Interaction Toolkit开发使用方法(二)Hisense XR-V3 Pro SDK接入-CSDN博客


二、主要组件

XR Interaction Manager

Unity XR-XR Interaction Toolkit开发使用方法(三)组件介绍(XR Interaction Manager)-CSDN博客

XR Controller

Unity XR-XR Interaction Toolkit开发使用方法(四)组件介绍(XR Controller)-CSDN博客

XR Interactor

Unity XR-XR Interaction Toolkit开发使用方法(五)组件介绍(XR Interactor)-CSDN博客

XR Direct Interactor

Unity XR-XR Interaction Toolkit开发使用方法(六)组件配置(XR Direct Interactor)-CSDN博客

XR Ray Interactor

Unity XR-XR Interaction Toolkit开发使用方法(七)组件配置(XR Ray Interactor)-CSDN博客

XR Socket Interactor

Unity XR-XR Interaction Toolkit开发使用方法(八)组件介绍(XR Socket Interactor)-CSDN博客


三、XR Gaze Interactor

1、组件介绍

Unity XR Gaze Interactor 是 XR Interaction Toolkit 中用于实现 基于视线(凝视)交互 的核心组件,允许用户通过头戴设备的注视方向与虚拟对象或 UI 元素交互。它无需手柄输入,仅依赖头部追踪数据,适用于轻量化交互场景(如医疗培训、无障碍应用)或作为辅助交互方式。

用于通过凝视与可交互对象交互的交互器。该组件通过实时更新的射线投射确定当前有效目标范围,仅与启用了"允许凝视交互"的XR基础可交互对象(XRI实现的XR简单可交互和XR抓取可交互)进行交互。本交互器支持在可交互对象上启用的注视辅助功能,且可交互对象具有附加属性,允许您单独为每个对象配置凝视功能的具体作用方式。


2、核心功能与特点

视线检测

  1. 从用户视角(摄像机)发射一条 不可见射线,检测视线路径上的 XR Interactable 对象或 UI 元素。
  2. 支持 注视时长阈值(Gaze Duration),防止误触(如持续注视 2 秒后触发选择)。

跨平台兼容

  1. 兼容主流 XR 设备的头部追踪(Oculus Quest、HTC Vive Focus、Windows MR 等)。
  2. 支持与手柄、手势追踪协同工作(如混合交互模式)。

事件驱动逻辑

  1. 提供 OnHoverEnteredOnSelectEntered 等事件,支持注视开始、持续、结束的回调。

无障碍设计

  1. 为运动受限用户提供无需手柄的交互方案。
  2. 可通过视线选择菜单、按钮等 UI 元素。

3、组件配置详解

属性描述
Gaze Assistance Snap Volume(可选)此交互器用于定位有效注视辅助目标的 XRInteractableSnapVolume。若未指定,将自动创建一个。
Gaze Assistance Calculation定义此交互器如何调整注视辅助吸附区域的尺寸和比例。
 Fixed Size为注视辅助吸附区域使用固定尺寸。
 Collider Size根据命中的可交互对象的碰撞体尺寸调整注视辅助吸附区域。
Gaze Assistance Fixed Size当计算方式为“固定尺寸”时,注视辅助吸附区域使用的固定尺寸值。
Gaze Assistance Collider Scale应用于注视辅助吸附区域的缩放比例。
Gaze Assistance Distance Scaling启用后,注视辅助碰撞体会根据交互器与目标可交互对象的距离动态调整缩放比例。
Clamp Distance Scaling将注视辅助碰撞体的缩放比例限制在“距离缩放钳制值”范围内。
Distance Scaling Clamp Value注视辅助碰撞体缩放比例的最大限制值。

4、工作原理

射线生成

  • 每帧从摄像机位置沿注视方向发射射线。

碰撞检测

  • 检测射线路径上的 Interactable 对象或 UI 元素。

计时验证

  • 若用户持续注视目标超过 Gaze Time,触发 Select 事件。

事件分发

  • 通过 XR Interaction Manager 通知目标对象执行交互逻辑。

5、事件系统与脚本交互

XR Gaze Interactor 提供以下关键事件:

事件触发时机典型应用
OnHoverEntered视线首次落在目标上时显示高亮、播放提示音
OnHoverExited视线离开目标时隐藏高亮、重置提示
OnSelectEntered注视时间达到阈值后触发确认选择、打开菜单
OnSelectExited视线移出目标或中断注视时取消操作、关闭弹窗

示例脚本:注视计时进度条

using UnityEngine;
using UnityEngine.UI;
using UnityEngine.XR.Interaction.Toolkit;public class GazeProgress : MonoBehaviour
{public XRGazeInteractor gazeInteractor;public Image progressBar;private float gazeTimer;void Update(){if (gazeInteractor.TryGetCurrentUIRaycastResult(out RaycastResult result)){gazeTimer += Time.deltaTime;progressBar.fillAmount = gazeTimer / gazeInteractor.gazeTime;if (gazeTimer >= gazeInteractor.gazeTime){// 触发选择逻辑gazeTimer = 0;}}else{gazeTimer = 0;progressBar.fillAmount = 0;}}
}

6、与其他组件的协作

与 UI 系统的集成

  1. 在 Canvas 上添加 Tracked Device Graphic Raycaster,使视线可交互 UI。
  2. 配置 XR UI Input Module 处理凝视输入事件。

与 XR Interaction Manager 的协同

  1. 管理视线交互与其他交互器(如手柄射线)的优先级。通常手柄交互优先级更高。

与物理对象的交互

  1. 为物体添加 XR SimpleInteractable,监听 OnHoverEntered 实现注视触发动画。

7、实际应用场景

场景1:无障碍菜单操作

  1. 创建浮动菜单 Canvas,添加按钮。
  2. 为每个按钮配置 XR SimpleInteractable,设置 Gaze Time 为 1.5 秒。
  3. 用户注视按钮时显示进度条,完成后触发点击事件。

场景2:凝视激活机关

  1. 在场景中放置一个锁定的宝箱,附加 XR Gaze Interactor
  2. 用户注视宝箱 3 秒后,播放解锁动画并打开。

场景3:混合交互(凝视+手柄)

  1. 用户通过视线快速定位远处物体。
  2. 按下手柄按钮后,使用 XR Ray Interactor 进行精细操作。

8、优化与调试技巧

降低误触率

  1. 增加 Gaze Time 至合理值(如 1~2 秒)。
  2. 使用 Layer Mask 过滤非交互层(如背景物体)。

视觉反馈优化

  1. 添加 光标粒子特效 或 动态缩放效果,增强视线焦点的可视性。
  2. 为长时间凝视设计进度动画(如圆形填充)。

性能调优

  1. 减少射线检测频率(通过 Raycast Update Interval)。
  2. 避免在复杂场景中启用 Enable Visual Feedback(减少渲染开销)。

9、常见问题与解决

问题:视线无法检测到物体
检查步骤

  1. 确认物体有 XR Interactable 组件和 Collider
  2. 检查 Layer Mask 是否包含目标层级。
  3. 验证 Ray Origin 是否绑定到摄像机。

问题:注视计时不准确
解决

  1. 确保 Gaze Time 大于 0。
  2. 在脚本中通过 Time.deltaTime 累加计时,避免帧率波动影响。

问题:多设备兼容性问题
适配方案

  1. 使用 UnityEngine.InputSystem.XR.XRHMD 获取设备通用头部数据。
  2. 为不同设备调整 Max Raycast Distance(如房间尺度 vs. 坐姿体验)。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com