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); } }
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; }
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>(); }