注视计时器完成后如何更改场景?

时间:2019-06-06 07:36:14

标签: c# unity3d

现在我正在为大学的最后一个学期做一个项目,我所在的地区通过凝视着(google VR SDK)改变了场景。

首先,我只是添加了代码来更改场景。有效。但是我想要增强功能,所以我使用了在YouTube上观看过的凝视定时器(链接:https://www.youtube.com/watch?v=bmMaVTV8UqY

现在,凝视计时器动画可以正常工作,但是NexScene1代码中的SceneSwitcher功能不起作用。

在添加了凝视定时器功能的新场景之后,我完成了“构建”。 另外,我使用了在YouTube上显示的标记。

这就是我所做的。

public class VRGaze : MonoBehaviour {

    public Image imgGaze;

    public float totalTime = 2;
    bool gvrStatus;
    float gvrTimer;

    public int distanceOfRay = 10;
    private RaycastHit _hit;

    // Use this for initialization
    void Start () {

    }

    // Update is called once per frame
    void Update () {
        if (gvrStatus)
        {
            gvrTimer += Time.deltaTime;
            imgGaze.fillAmount = gvrTimer / totalTime;
        }
        Ray ray = Camera.main.ViewportPointToRay(new Vector3(0.5f, 0.5f, 0.5f));

        if(Physics.Raycast(ray, out _hit, distanceOfRay))
        {
            if(imgGaze.fillAmount == 1 && _hit.transform.CompareTag("NexScene1"))
            {
                _hit.transform.gameObject.GetComponent<NexScene1>().SceneSwitcher();
            }

        }
    }

    public void GVROn()    {
        gvrStatus = true;
    }

    public void GVROff()    {
        gvrStatus = false;
        gvrTimer = 0;
        imgGaze.fillAmount = 0;
    }

}


public class NexScene1 : MonoBehaviour {
    public UnityEngine.UI.Scrollbar obj_scroll_;

    public GameObject player;

    public void PointEnter()
    {
        StartCoroutine(TimeToAction());
    }

    public void PointExit()
    {
        StopAllCoroutines();
    }

    public void SceneSwitcher()
    {
        SceneManager.LoadScene("Page2");
    }
    void Start () {

    }

    // Update is called once per frame
    void Update () {

    }
}

不是真正的错误,而是VRGaze不会调用SwitchScene函数

不是错误,但控制台显示:

  

建议使用GvrPointerPhysicsRaycaster或   具有GvrPointerInputModule的GvrPointerGrahpicRaycaster。

0 个答案:

没有答案