/// <summary> /// 异步加载场景 /// </summary> /// <param name="assetBundleName"></param> /// <param name="sceneName"></param> /// <param name="mode"></param> /// <returns></returns> public async Task <AsyncOperation> LoadSceneAsync(string assetBundleName, string sceneName, LoadSceneMode mode = LoadSceneMode.Single) { _resourceHelper = GameMode.Resource.GetResourceHelper(); if (_resourceHelper == null) { throw new GamekException("You must set resource manager first."); } if (string.IsNullOrEmpty(sceneName)) { throw new GamekException("Scene asset name is invalid."); } if (SceneIsLoading(sceneName)) { throw new GamekException(string.Format("Scene asset '{0}' is being loaded.", sceneName)); } if (SceneIsLoaded(sceneName)) { throw new GamekException(string.Format("Scene asset '{0}' is already loaded.", sceneName)); } m_LoadingSceneAssetNames.Add(sceneName); AsyncOperation asyncOperation = await _resourceHelper.LoadSceneAsync(assetBundleName, sceneName, mode); _sceneAsyncOperations.Add(sceneName, asyncOperation); return(asyncOperation); }
/// <summary> /// 异步加载场景 /// </summary> /// <param name="assetBundleName"></param> /// <param name="sceneName"></param> /// <param name="mode"></param> /// <returns></returns> public Task <AsyncOperation> LoadSceneAsync(string assetBundleName, string sceneName, LoadSceneMode mode = LoadSceneMode.Additive) { if (_resourceHelper == null) { return(null); } Task <AsyncOperation> asyncOperation = _resourceHelper.LoadSceneAsync(assetBundleName, sceneName, mode); _sceneAsyncOperations.Add(sceneName, asyncOperation.Result); return(asyncOperation); }
/// <summary> /// 加载场景(异步) /// </summary> /// <param name="info">场景配置信息</param> /// <param name="loadingAction">场景加载中回调</param> /// <param name="loadDoneAction">场景加载完成回调</param> /// <returns>加载协程</returns> public Coroutine LoadScene(SceneInfo info, HTFAction <float> loadingAction = null, HTFAction loadDoneAction = null) { return(Main.Current.StartCoroutine(_helper.LoadSceneAsync(info, loadingAction, loadDoneAction))); }