Gaze(凝视)
Gaze 是一种输入形式,与用户所看向的地方互动。凝视有两种不同的方式
Head gaze
这种凝视是基于头部/相机看向的方向。Head gaze活跃在不支持 eye gaze的系统上,或者在硬件可能支持eye gaze的情况下,但 正确的权限和设置 尚未执行。
Head gaze通常与HoloLens 1风格的互动相关,包括通过看向物体将其置于全息图框的中央,然后执行air tap手势
Eye gaze
这种凝视是基于用户的眼睛看向的地方。Eye gaze只运行于在支持眼动跟踪的系统上。查看 眼动跟踪文档以获取有关如何使用 eye gaze的更多详细信息。
GazeProvider
凝视功能(包括头部和眼睛)由
Gaze
像其他输入源一样,gaze provide
通过使用指针 (参阅本文档获取有关指针的信息)与场景中的对象进行交互.
对于gaze provider,其指针是通过InternalGazePointer
实现的
并且未通过配置文件进行配置。
替换当前GazeProvider是有可能的,需要更改
Gaze Provider Type来引用实现了IMixed
用法
如何获得当前的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);
}