public static SceneData Get <T>(T sceneID) where T : System.IConvertible { SceneData result = null; if (s_SceneDataMap.TryGetValue(sceneID.ToInt32(null), out result)) { return(result); } Log.e("#InValid SceneID:" + sceneID.ToInt32(null)); return(null); }
private static void Add(SceneData data) { if (data == null) { return; } if (s_SceneDataMap.ContainsKey(data.sceneID)) { Log.w("#Already Add SceneID:" + data.sceneID); return; } s_SceneDataMap.Add(data.sceneID, data); }
private SceneInfo LoadSceneInfo(int sceneID) { SceneData data = SceneDataTable.Get(sceneID); if (data == null) { Log.e("#Not Find SceneData for SceneID:" + sceneID); return(null); } //bool needAdd = true; SceneInfo sceneInfo = ObjectPool <SceneInfo> .S.Allocate(); sceneInfo.Init(sceneID); return(sceneInfo); }
public void LoadSceneRes() { if (m_SceneState != eSceneState.UnInit) { return; } m_SceneState = eSceneState.Loading; SceneData data = SceneDataTable.Get(m_SceneID); if (data == null) { return; } if (data.loadStrategy == SceneLoadStatgy.Addressable) { AddressableResMgr.S.LoadSceneAsync(data.fullPath, (sceneInstance) => { if (m_OpenCallback != null) { m_OpenCallback.Invoke(); } }, data.loadSceneMode); } else { SceneManager.LoadSceneAsync(data.fullPath, data.loadSceneMode).completed += (handle) => { if (m_OpenCallback != null) { m_OpenCallback.Invoke(); } }; } }