Example #1
0
 private void OnReturnSelectRole(GameEventBase gameEventBase)
 {
     if (GameEntry.Data.UserData.RoleLists == null || GameEntry.Data.UserData.RoleLists.Count == 0)
     {
         CurrFsm.SetData <VarInt>(Constant.ProcedureData.NextSceneId, (int)SceneType.LogOn);
         GameEntry.UI.OpenUIForm(UIFormId.Loading);
     }
     else
     {
         GameEntry.UI.OpenUIForm(UIFormId.SelectRole);
     }
 }
Example #2
0
        public override void OnEnter()
        {
            base.OnEnter();
            m_IsChangeSceneComplete = false;
            m_NextSceneId           = 0;

            GameEntry.Event.CommonEvent.AddEventListener(LoadSceneSuccessGameEvent.EventId, OnLoadSceneSuccess);
            GameEntry.Event.CommonEvent.AddEventListener(LoadSceneFailureGameEvent.EventId, OnLoadSceneFailure);
            GameEntry.Event.CommonEvent.AddEventListener(LoadSceneUpdateGameEvent.EventId, OnLoadSceneUpdate);
            GameEntry.Event.CommonEvent.AddEventListener(LoadSceneDependencyAssetGameEvent.EventId, OnLoadSceneDependencyAsset);

            // 停止所有声音
            GameEntry.Sound.StopAllLoadingSounds();
            GameEntry.Sound.StopAllLoadedSounds();

            // 隐藏所有实体
            GameEntry.Entity.HideAllLoadingEntities();
            GameEntry.Entity.HideAllLoadedEntities();

            // 卸载所有场景
            string[] loadedSceneAssetNames = GameEntry.Scene.GetLoadedSceneAssetNames();
            for (int i = 0; i < loadedSceneAssetNames.Length; i++)
            {
                GameEntry.Scene.UnloadScene(loadedSceneAssetNames[i]);
            }

            // 还原游戏速度
            GameEntry.Base.ResetNormalGameSpeed();

            m_NextSceneId = CurrFsm.GetData <VarInt>(Constant.ProcedureData.NextSceneId).Value;

            SceneEntity sceneEntity = GameEntry.DataTable.GetDataTable <SceneDBModel>().Get(m_NextSceneId);

            if (sceneEntity == null)
            {
                Log.Warning("Can not load scene '{0}' from data table.", m_NextSceneId.ToString());
                return;
            }

            GameEntry.Scene.LoadScene(AssetUtility.GetSceneAsset(sceneEntity.AssetName), Constant.AssetPriority.SceneAsset, this);
            m_BackgroundMusicId = sceneEntity.BackgroundMusicId;
        }
Example #3
0
        public override void OnUpdate(float deltaTime, float unscaledDeltaTime)
        {
            base.OnUpdate(deltaTime, unscaledDeltaTime);


            if (!m_HotfixPreload)
            {
                return;
            }

            IEnumerator <bool> iter = m_LoadedFlag.Values.GetEnumerator();

            while (iter.MoveNext())
            {
                if (!iter.Current)
                {
                    return;
                }
            }

            CurrFsm.SetData <VarInt>(Constant.ProcedureData.NextSceneId, (int)SceneType.LogOn);
            ChangeState <ProcedureChangeScene>();
        }