protected override void OnOpen(object userData) { base.OnOpen(userData); for (int i = 0; i < m_LevelItems.Length; i++) { int levelId = m_LevelItems[i].LevelId; string levelName = m_LevelItems[i].LevelName; SceneId sceneId = m_LevelItems[i].SceneId; LevelItem item = m_LevelItems[i]; item.onClick.Add(() => { m_CurSelectLevelId = levelId; m_LevelScene = sceneId; m_SelectText.text = levelName; m_EnterButton.enabled = !item.IsLock; }); } m_EnterButton?.onClick.Add(() => { EnterLevelEventArgs eventArgs = ReferencePool.Acquire <EnterLevelEventArgs>(); eventArgs.Fill(m_CurSelectLevelId, m_LevelScene); GameEntry.Event.Fire(this, eventArgs); GameEntry.UI.CloseUIForm(UIFormId.LevelSelectForm); }); m_CloseButton?.onClick.Add(() => { GameEntry.UI.CloseUIForm(UIFormId.LevelSelectForm); }); }
private void OnEnterLevel(object sender, GameEventArgs e) { EnterLevelEventArgs ne = e as EnterLevelEventArgs; m_ProcedureOwner.SetData <VarInt>(Constant.ProcedureData.NextSceneId, (int)ne.SceneId); m_ProcedureOwner.SetData <VarInt>(Constant.ProcedureData.NextLevelId, ne.LevelId); GameEntry.Level.LeaveCurrentLevel(); ChangeState <ProcedureChangeScene>(m_ProcedureOwner); }