using Cysharp.Threading.Tasks; using Framework; using Gameplay; using Gameplay.Level; using Gameplay.SubSystems; public class GameStateLevel : IState { private int _levelId; public GameStateLevel(int levelId) { _levelId = levelId; } public void OnEnter() { _LoadLevel(); EventManager.Instance.Send(EventManager.EventName.Guide_ChangeLevelState); } private async void _LoadLevel() { await LoadingManager.Instance.ExecuteLoading(new LevelLoadingExecutor(_levelId)); LevelManager.Instance.CurrentLevel.EnterLevel(); } public void OnUpdate(float deltaTime) { } public void OnExit() { LevelManager.Instance.UnloadLevel(); } }