操作1 抓取立方体
组件
在新建的立方体下面挂载三个组件(可以搜索选择)
1.Constraint Manager
约束管理器组件 用于管理该物体身上所有已挂载的组件 包括呈现,激活,添加等
2.Object Manipulator
物体操作器 该组件可以对一些行为配置 包括用几只手操作,是否有物理特性,何时激活事件
3.NearInteractionGrabbable
这是近距离交互里面的抓取组件
操作2 注视立方体变色
代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ColorChanging : MonoBehaviour
{
public Material GreenMaterial;
public Material RedMaterial;
public Material BlueMaterial;
public Material YellowMaterial;
private Material PreviousMaterial;
声明了四个材质属性变量,unity中拖来赋值。
而指定了public意味着当前变量可以被其他的脚本或者组件进行修改
而private的变量只能在当前类的实例使用
void Start()
{
PreviousMaterial = GetComponent<Renderer>().material;
}
// Update is called once per frame
void Update()
{
}
GetComponent<组件名>()是十分常用的方法,用来“获取挂载该脚本的游戏对象下面的某一组件”
此处获取Renderer组件下面的属性material,并将值赋给material变量PreviousMaterial,后面就可以通过修改脚本属性previousMaterial来修改该游戏对象render下面的材质属性了
public void TurnRed()
{
GetComponent<Renderer>().material = RedMaterial;
PreviousMaterial = RedMaterial;
}
public void TurnBlue(){...}
public void TurnGreen(){...}
public void TurnYellow(){...}
public void TurnBack()
{
GetComponent<Renderer>().material = PreviousMaterial;
}
}
定义的一系列方法,当前游戏对象下的render组件下的material属性修改为redmaterial变量值
组件
还有MRTK的input(添加eye 在input simulator中eye换成mouse)和pointer启用eye tracking
配置
预.代码中检查是否有校准数据
返回true表明该用户眼动校准数据可用,返回false表明校准的数据不可用,null是没有检测到该用户校准数据
1.对当前构建应用启用凝视功能
2.添加凝视数据提供者
整个MRTK配置文件—>输入系统的配置文件—>眼动追踪的配置文件
3.启用眼动追踪指针
4.详细参数设置
游戏对象camera之下的组件GazeProvider设置
lock cursor when focus locked(锁定焦点是锁定光标 此时不追踪眼动)
set fursor invisible when focus locked(锁定光标时设置不可见)
max gaze collision distance(最大碰撞距离)
raycast layer masks(射线检测层掩码设置可以与能试输入进行射线检测的游戏对象层)
stored stability samples(眼动采样频率)
min/max velocity threshold(头部速度阈值范围)
5.选择模拟器
效果展示
原始
手操控
鼠标注视即变色
未解之谜
该处的type找不到Microsoft.MixedReality.Toolkit.WindowsMixedReality.Input下的windows mixed reality eye gaze data provider