NLDClient-yudde/ProjectNLD/Assets/Code/Scripts/Gameplay/Level/LevelManager.cs

52 lines
1.2 KiB
C#

using System.Collections;
using System.Collections.Generic;
using Cysharp.Threading.Tasks;
using Framework;
using PhxhSDK;
namespace Gameplay.Level
{
public partial class LevelManager : Singlenton<LevelManager>, IUpdatable, IInitable
{
public Level CurrentLevel { get; private set; }
public async UniTask<LoadingResult> LoadLevel(int leveId)
{
CurrentLevel = new Level(leveId, _levelParam);
await CurrentLevel.Load();
await UniTask.NextFrame();
return LoadingResult.Success;
}
public async void UnloadLevel()
{
await CurrentLevel.Unload();
if (CurrentLevel != null)
{
CurrentLevel.Release();
CurrentLevel = null;
}
}
public void Update(float deltaTime)
{
if (CurrentLevel != null)
{
CurrentLevel.Update(deltaTime);
}
}
public void Init()
{
InitData();
InitAction();
}
public void Release()
{
ReleaseData();
ReleaseAction();
}
}
}