如何在Unity上使用Windows混合现实工具包中的凝视来改变场景?

时间:2018-02-05 22:46:56

标签: unity3d virtual-reality windows-mixed-reality

使用Windows HoloToolKit和Unity 2017,我设置了“菜单”场景,并设置了“巡视”场景。我只是试图进行基于注视的互动,从菜单进入游览。

我觉得这不是太难,但我正在旋转我的轮子(我是Unity的初学者)。我基本上希望有3D立方体说“看这里”并触发下一个场景。

我只需要一个非常简单的用户体验,这样人们就可以戴上耳机,确切知道该做什么,观看视频,然后它将返回菜单。

1 个答案:

答案 0 :(得分:0)

虽然我不熟悉HoloKit API,但我认为你的相机与玩家所在的位置是一致的。在这种情况下,您可以从相机发送光线投射,然后检查它是否到达立方体。如果是光线投射,那么您可以更改场景,如下所示:

public void Update()  {
    RaycastHit hit = null;
    if (Physics.Raycast(transform.position, transform.forward, hit) && hit.transform.gameObject.name == "cubeName") {
        SceneManager.LoadScene("nextScene");
    }
}

当然,您可能不希望立方体在它们盯着它的瞬间加载场景。在这种情况下,您可以跟踪他们看多久,然后在查看一定数量后更改场景:

public float lookTime;
public void Update()  {
    RaycastHit hit = null;
    if (Physics.Raycast(transform.position, transform.forward, hit) && hit.transform.gameObject.name == "cubeName") {
        lookTime += Time.deltaTime;
    }
    else {
        lookTime = 0;
    }
    if(lookTime > 1000) {
         SceneManager.LoadScene("nextScene");
    }
}

此脚本连接到相机后,将从相机进行光线投射,并检查其命中的内容是否为cubeName。然后,它会将当前时间量更改添加到lookTime。当lookTime达到1000毫秒或一秒时,它将加载场景nextScene