Vuforia 在多次AR场景与非AR场景之间切换时可能会出现黑屏的解决方法

来源:互联网 发布:战龙三国四灵进阶数据 编辑:程序博客网 时间:2024/06/05 01:18

在unity 5.3.4中

using UnityEngine;using System.Collections;using UnityEngine.SceneManagement;using Vuforia;public class ClearBlackScript : MonoBehaviour {    public void loadStartPage()    {        StartCoroutine(LoadScenes("StartScreen"));    }    IEnumerator LoadScenes(string sceneName)    {        if (TrackerManager.Instance.GetTracker<MarkerTracker>() != null)        {            MarkerTracker marker = TrackerManager.Instance.GetTracker<MarkerTracker>();            marker.Stop();        }        if (TrackerManager.Instance.GetTracker<TextTracker>() != null)        {            TextTracker textTracker = TrackerManager.Instance.GetTracker<TextTracker>();            textTracker.Stop();        }        if (TrackerManager.Instance.GetTracker<ObjectTracker>() != null)        {            ObjectTracker objTracker = TrackerManager.Instance.GetTracker<ObjectTracker>();            objTracker.Stop();        }        //此处返回waitForSeconds,因为我是在OnGUI中启动协程,如果不用WaitForSeconds,就会识别两次模型        yield return new WaitForSeconds(0.5f);  //WaitForEndOfFrame();        //Application.LoadLevel(sceneName);        SceneManager.LoadScene(sceneName);    }}
在unity 5.2.2中

using UnityEngine;using System.Collections;using Vuforia;public class ClearBlackScript : MonoBehaviour {public void loadStartPage(){StartCoroutine (LoadScenes ("vuforiaAniamtion"));}IEnumerator LoadScenes(string sceneName){if (TrackerManager.Instance.GetTracker<MarkerTracker> () != null) {MarkerTracker marker = TrackerManager.Instance.GetTracker<MarkerTracker>();marker.Stop();}if (TrackerManager.Instance.GetTracker<TextTracker> () != null) {TextTracker textTracker = TrackerManager.Instance.GetTracker<TextTracker>();textTracker.Stop();}if (TrackerManager.Instance.GetTracker<Tracker> () != null) {Tracker objTracker = TrackerManager.Instance.GetTracker<Tracker>();objTracker.Stop();}yield return new WaitForSeconds(0.5f);Application.LoadLevel (sceneName);}}



0 0