mrtk_developmentreleases/2.0.0releases/2.1.0releases/2.2.0

    Show / Hide Table of Contents

    Gaze(凝视)

    Gaze 是一种输入形式,与用户所看向的地方互动。凝视有两种不同的方式

    Head gaze

    这种凝视是基于头部/相机看向的方向。Head gaze活跃在不支持 eye gaze的系统上,或者在硬件可能支持eye gaze的情况下,但 正确的权限和设置 尚未执行。

    Head gaze通常与HoloLens 1风格的互动相关,包括通过看向物体将其置于全息图框的中央,然后执行air tap手势

    Eye gaze

    这种凝视是基于用户的眼睛看向的地方。Eye gaze只运行于在支持眼动跟踪的系统上。查看 眼动跟踪文档以获取有关如何使用 eye gaze的更多详细信息。

    GazeProvider

    凝视功能(包括头部和眼睛)由 GazeProvider提供. 这个provider可在input system 配置文件的Pointer部分中配置:

    Gaze Configuration Entrypoint

    像其他输入源一样,gaze provide 通过使用指针 (参阅本文档获取有关指针的信息)与场景中的对象进行交互. 对于gaze provider,其指针是通过InternalGazePointer实现的 并且未通过配置文件进行配置。

    替换当前GazeProvider是有可能的,需要更改 Gaze Provider Type来引用实现了IMixedRealityGazeProvider和IMixedRealityEyeGazeProvider的新类,这样即可进行替代实现。通常建议使用现有GazeProvider(并在寻找bug时提交问题错误),因为重新实现GazeProvider并非易事。

    用法

    如何获得当前的gaze target

    此示例显示如何获取用户所凝视的当前游戏对象。

    void LogCurrentGazeTarget()
    {
        if (CoreServices.InputSystem.GazeProvider.GazeTarget)
        {
            Debug.Log("用户正在凝视 game object: "
                + CoreServices.InputSystem.GazeProvider.GazeTarget)
        }
    }
    

    如何获取当前的凝视方向和原点

    此示例演示如何获取代表用户凝视方向的Vector3 向量 和原点(凝视方向的起点)。

    void LogGazeDirectionOrigin()
    {
        Debug.Log("凝视方向: "
            + CoreServices.InputSystem.GazeProvider.GazeDirection);
    
        Debug.Log("凝视原点是 "
            + CoreServices.InputSystem.GazeProvider.GazeOrigin);
    }
    
    • Improve this Doc
    In This Article
    • Head gaze
    • Eye gaze
    • GazeProvider
    • 用法
      • 如何获得当前的gaze target
      • 如何获取当前的凝视方向和原点
    Back to top Generated by DocFX