继续重构调整(UI)
- 引入 UniTask 和异步版本的 UIModule - 调整 Runtime/UIBase 和 Presentation 下的脚本命名空间到 SepCore.UI - 将原来的 5 层 UI 迁移到异步实现 - 规范各层的 UI 脚本命名
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
using Cysharp.Threading.Tasks;
|
||||
using SepCore.Definition;
|
||||
using SepCore.UI;
|
||||
using UnityEngine;
|
||||
using UnityGameFramework.Runtime;
|
||||
using ProcedureOwner = GameFramework.Fsm.IFsm<GameFramework.Procedure.IProcedureManager>;
|
||||
|
||||
namespace Procedure
|
||||
{
|
||||
public class ProcedureMenu : ProcedureBase
|
||||
{
|
||||
public override bool UseNativeDialog => false;
|
||||
|
||||
private bool _startGame = false;
|
||||
|
||||
private int _selectedRoleId = 0;
|
||||
|
||||
public void StartGame(int selectedRoleId)
|
||||
{
|
||||
_selectedRoleId = selectedRoleId;
|
||||
_startGame = true;
|
||||
}
|
||||
|
||||
#region FSM
|
||||
|
||||
protected override async void OnEnter(ProcedureOwner procedureOwner)
|
||||
{
|
||||
base.OnEnter(procedureOwner);
|
||||
|
||||
await GameEntry.UIRouter.OpenUIAsync(UIFormType.MenuForm);
|
||||
|
||||
var useCase = new SelectRoleUseCase(StartGame);
|
||||
GameEntry.UIRouter.BindUIUseCase(UIFormType.SelectRoleForm, useCase);
|
||||
|
||||
QualitySettings.vSyncCount = 0;
|
||||
Application.targetFrameRate = 120;
|
||||
}
|
||||
|
||||
protected override void OnLeave(ProcedureOwner procedureOwner, bool isShutdown)
|
||||
{
|
||||
base.OnLeave(procedureOwner, isShutdown);
|
||||
GameEntry.UIRouter.CloseUIAsync(UIFormType.MenuForm).Forget();
|
||||
GameEntry.UIRouter.CloseUIAsync(UIFormType.SelectRoleForm).Forget();
|
||||
}
|
||||
|
||||
protected override void OnUpdate(ProcedureOwner procedureOwner, float elapseSeconds, float realElapseSeconds)
|
||||
{
|
||||
base.OnUpdate(procedureOwner, elapseSeconds, realElapseSeconds);
|
||||
|
||||
if (_startGame)
|
||||
{
|
||||
procedureOwner.SetData<VarInt32>("NextSceneId", (int)SceneId.Game);
|
||||
procedureOwner.SetData<VarInt32>("SelectedRoleId", _selectedRoleId);
|
||||
ChangeState<ProcedureChangeScene>(procedureOwner);
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user