예제 #1
0
        public static void LoadScene(string scene)
        {
            if (scene == null || scene == "")
            {
                return;
            }

            //prev clean
            if (loadStatus != LoadSceneStatus.NONE)
            {
                return;
            }

            next = scene;

            loadStatus = LoadSceneStatus.BEGIN;

            System.GC.Collect();

            if (!first)
            {
                UIFrame.SceneLoadProcessAtlases();
                sceneManager.xLoadScene("1");
            }
            else
            {
                first = false;
                sceneManager.NextLoadingScene();
            }
        }
예제 #2
0
        private void OnSceneWasLoaded()
        {
            if (!alive)
            {
                return;
            }
            if (loadStatus == LoadSceneStatus.END)
            {
                {
                    loadStatus   = LoadSceneStatus.NONE;
                    sceneLoading = false;

                    LuaContext.RefreshDelegateMap();

#if LUASCRIPT
                    if (luaLoadOverFunc == null)
                    {
                        luaLoadOverFunc = LuaManager.GetFunction("SceneManager.ListenLoadOver");
                    }

                    if (luaLoadOverFunc != null)
                    {
                        LuaManager.CallFunc_VX(luaLoadOverFunc, next);
                    }
#endif
                }
            }
            else if (loadStatus == LoadSceneStatus.BEGIN)
            {
                if (!sceneLoading)
                {
                    sceneLoading = true;

                    if (next != null)
                    {
                        Load();
                    }
                }
            }

            ClearSceneAsset();

            Resources.UnloadUnusedAssets();
            System.GC.Collect();
        }
예제 #3
0
        private void EndLoad(Object ab, object obj)
        {
            if (!alive)
            {
                return;
            }
            if (!(ab is AssetBundle))
            {
                return;
            }

            AssetBundle asset = ab as AssetBundle;

            sceneAsset.Add(asset);
            c_scene.Add(next);

            loadStatus = LoadSceneStatus.END;
            DirectlyLoadScene();
        }