public void UnloadSceneAsync(string sceneName, string loadingName, Action callback = null, bool autoActivationScene = true) { if (string.IsNullOrEmpty(sceneName)) { return; } if (IsLoading) { return; } m_SceneLoader = null; m_LoadingLoader = null; IsLoading = true; LoadingSceneName = sceneName; m_Callback = callback; m_bAutoActivationScene = autoActivationScene; m_SceneLoader = new C_SceneLoader(); m_SceneLoader.UnloadSceneAddictive(LoadingSceneName); _MainSceneName = ""; }
public void LoadScene(string sceneName, string loadingName, Action callback, bool autoActivationScene, LoadSceneMode loadSceneMode, string mainSceneName = "") { if (string.IsNullOrEmpty(sceneName)) { return; } if (IsLoading) { return; } m_SceneLoader = null; m_LoadingLoader = null; IsLoading = true; LoadingSceneName = sceneName; m_Callback = callback; m_bAutoActivationScene = autoActivationScene; m_LoadSceneMode = loadSceneMode; _MainSceneName = mainSceneName; if (string.IsNullOrEmpty(loadingName)) { //如果能下载,我们在此添加加载 m_SceneLoader = new C_SceneLoader(sceneName, m_LoadSceneMode, mainSceneName); } else { m_LoadingLoader = new C_SceneLoader(loadingName, LoadSceneMode.Single); } }
public void ActivationScene() { if (m_SceneLoader != null && m_SceneLoader.IsDone()) { m_SceneLoader.ActivationScene(); if (m_SceneLoader.LoadOver()) { IsLoading = false; CurSceneName = LoadingSceneName; LoadingSceneName = ""; m_SceneLoader = null; m_LoadSceneMode = LoadSceneMode.Single; } } }
void Update() { if (IsLoading) { if (m_LoadingLoader != null && m_LoadingLoader.IsDone()) { m_LoadingLoader.ActivationScene(); CurSceneName = "Loading"; m_SceneLoader = new C_SceneLoader(LoadingSceneName, m_LoadSceneMode, _MainSceneName); m_LoadingLoader = null; } if (m_SceneLoader != null && m_SceneLoader.IsDone()) { if (m_bAutoActivationScene) { m_SceneLoader.ActivationScene(); if (m_SceneLoader.LoadOver()) { IsLoading = false; CurSceneName = LoadingSceneName; LoadingSceneName = ""; m_SceneLoader = null; m_LoadSceneMode = LoadSceneMode.Single; if (m_Callback != null) { m_Callback(); } } } else { if (m_Callback != null) { m_Callback(); } } } } }