NLDClient-yudde/ProjectNLD/Assets/Code/Scripts/Gameplay/Game/GameStateLevel.cs

37 lines
804 B
C#
Raw Normal View History

2024-05-17 19:27:02 +08:00
using Cysharp.Threading.Tasks;
2023-08-22 19:08:45 +08:00
using Framework;
using Gameplay;
using Gameplay.Level;
using Gameplay.SubSystems;
2023-10-19 15:00:19 +08:00
public class GameStateLevel : IState
2023-08-22 19:08:45 +08:00
{
2023-10-19 15:00:19 +08:00
private int _levelId;
public GameStateLevel(int levelId)
2023-08-22 19:08:45 +08:00
{
_levelId = levelId;
}
public void OnEnter()
{
_LoadLevel().Forget();
2024-06-04 15:13:16 +08:00
EventManager.Instance.Send(EventManager.EventName.Guide_ChangeLevelState);
2023-08-22 19:08:45 +08:00
}
private async UniTask _LoadLevel()
2024-11-14 19:58:45 +08:00
{
await LoadingManager.Instance.ExecuteLoading(new LevelLoadingExecutor(_levelId));
LevelManager.Instance.CurrentLevel.EnterLevel();
}
2023-08-22 19:08:45 +08:00
public void OnUpdate(float deltaTime)
{
}
public void OnExit()
{
LevelManager.Instance.UnloadLevel().Forget();
2023-08-22 19:08:45 +08:00
}
}