public void Update() { switch (_state) { case ReadyToLoadStateType.Init1: { if (!AssetBundleMgr.GetInstance().IsInited()) { break; } UiMgr.GetInstance().Init(); _state = ReadyToLoadStateType.Init2; break; } case ReadyToLoadStateType.Init2: { if (!UiMgr.GetInstance().IsInited()) { break; } _state = ReadyToLoadStateType.LoadScene; break; } case ReadyToLoadStateType.LoadScene: { // 初始化加载,下面二行可以优化成加载类 GameMain.GetInstance().Init(); // 设置 加载场景需要加载的数据 AsyncLoaderCache cache = AsyncLoaderCache.GetInstance(); cache.Loaders.Clear(); AsyncLoaderScene ssloader = new AsyncLoaderScene(AsyncLoader.SceneLoginAbPath, AsyncLoader.SceneLoginName, AsyncLoader.SceneLoginMapId); cache.Loaders.Add(ssloader); //AsyncLoaderTest testLoader = new AsyncLoaderTest( ); //cache.Loaders.Add( testLoader ); // 准备开始游戏了,加载“加载场景” SceneManager.LoadScene(AsyncLoader.SceneLoader); _state = ReadyToLoadStateType.Ok; break; } case ReadyToLoadStateType.Ok: break; } }
public void LoadScene(string sceneAbPath, string sceneResName, int mapId) { // 通知,有新的场景需要加载了 EventDispatcher.GetInstance().Broadcasting(eEventType.SceneLoadStart); // 设置 加载场景需要加载的数据 AsyncLoaderCache cache = AsyncLoaderCache.GetInstance(); cache.Loaders.Clear(); AsyncLoaderScene ssloader = new AsyncLoaderScene(sceneAbPath, sceneResName, mapId); cache.Loaders.Add(ssloader); // 加载“加载场景” _isLoadedMap = false; SceneManager.LoadScene(AsyncLoader.SceneLoader); }