Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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();
                    }
                };
            }
        }