Как изменить сцену после того, как таймер взгляда сделан? - PullRequest
0 голосов
/ 06 июня 2019

Сейчас я делаю проект для моего последнего семестра в университете, и мой район изменил сцену, взглянув на нее (google VR SDK).

Сначала я просто добавил код, чтобы изменить сцену.Это сработало.Но мне нужны некоторые улучшения, поэтому я использовал таймер взгляда, который смотрел на youtube (ссылка: https://www.youtube.com/watch?v=bmMaVTV8UqY)

Теперь анимация таймера взгляда работает, но функция SceneSwitcher в коде NexScene1 не работает.

Я сделал 'build' после добавления новой сцены, в которую я добавил функцию таймера взгляда. Также я использовал tagged, который показан в 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 () {

    }
}

Не фактическая ошибка, а только функция SwitchScene не вызывается в VRGaze

Не ошибка, но консоль говорит:

Рекомендуется использовать GvrPointerPhysicsRaycaster или GvrPointerGrahpicRaycaster сGvrPointerInputModule.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...