1

使用 Windows HoloToolKit 和 Unity 2017,我设置了“菜单”场景并设置了“游览”场景。我只是试图进行基于凝视的交互,该交互将从菜单推进到游览。

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

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

4

1 回答 1

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

于 2018-02-06T19:17:03.450 回答