GazeInputModule是在Unity Editor下最容易测试的了,在跟随gvr sdk for unity一起导入的包里,包含了一个GvrReticle这个预设体,这个预设体绑定一个脚本GvrReticle.cs,打开脚本,可以看到它继承有一个IGvrGazePointer的接口,这个就是接收GazeInputModule事件的接口;还有一个在HeadSetDemo里的场景中的一个Cube绑定的Teleport脚本,打开这个脚本则会看到,它继承有另一个叫做IGvrGazeResponder的接口;
IGvrGazePointer 和 IGvrGazeResponder的作用就很明显了,IGvrGazePointer相对于观察者的凝视事件接收器,是主动的,也就是说观察者看到什么东西,可以通过继承实现里面的接口,就可以获取正在凝视着的物体;IGvrGazeResponder是被凝视事件的接收器,当一个物体被凝视,就是触发里面的事件,就像HeadSetDemo里面的Cube,当你把准星对准它的时候它会变色;就是通过继承实现IGvrGazeResponder的事件接口来修改Cube的颜色;
例子说明先到这里,下面翻译一下IGvrGazePointer里面各个事件接口的注释:
1
/// This is called when the 'BaseInputModule' system should be enabled.
void OnGazeEnabled();
上面这个比较好理解就是基础输入模块启用的时候会调用这个函数;无参;
2
/// This is called when the 'BaseInputModule' system should be disabled.
void OnGazeDisabled();
这个跟第一个相反,就是被禁用的使用调用这个函数
3