IEnumerator LoadSceneAsync(string sceneName, SceneLoadHook pfun)
    {
        AsyncOperation requestScene = UnityEngine.SceneManagement.SceneManager.LoadSceneAsync(sceneName);

        while (requestScene.progress < 1)
        {
            if (pfun != null)
            {
                pfun(requestScene.progress);
            }

            yield return(s_WaitForEndOfFrame);
        }

        if (pfun != null)
        {
            pfun(1f);
        }
    }
Ejemplo n.º 2
0
    IEnumerator LoadSceneAsync(string sceneName, SceneLoadHook pfun)
    {
        string abPath = ABLoad.GetAssetBundlePath(ABLoad.GetRelativePath(ResourcesType.Scene, sceneName).ToLower());
        AssetBundleCreateRequest requestAB = AssetBundle.LoadFromFileAsync(abPath);

        while (requestAB.progress < 1)
        {
            if (pfun != null)
            {
                pfun(requestAB.progress * 0.5f);
            }

            yield return(s_WaitForEndOfFrame);
        }

        AsyncOperation requestScene = UnityEngine.SceneManagement.SceneManager.LoadSceneAsync(sceneName);

        while (requestScene.progress < 1)
        {
            if (pfun != null)
            {
                pfun(0.5f + requestScene.progress * 0.5f);
            }

            yield return(s_WaitForEndOfFrame);
        }

        if (requestAB.assetBundle != null)
        {
            requestAB.assetBundle.Unload(false);
        }

        if (pfun != null)
        {
            pfun(1f);
        }
    }
 // 加载场景
 public override void LoadScene(string sceneName, SceneLoadHook pfun)
 {
     ResourceManger.AsyncGo.StartCoroutine(LoadSceneAsync(sceneName, pfun));
 }
 // 加载场景
 public virtual void LoadScene(string sceneName, SceneLoadHook pfun)
 {
 }
Ejemplo n.º 5
0
 /// <summary>
 /// 加载场景
 /// <param ItemName>场景item名称</param>
 /// <param parent>父节点</param>
 /// <param IsCache>是否缓存</param>
 /// <param async>是否异步</param>
 /// <param pfun>回调函数</param>
 /// </summary>
 public static void LoadScene(string sceneName, SceneLoadHook pfun)
 {
     g_AssetLoad.LoadScene(sceneName, pfun);
 }