Restructured for new direction.
This commit is contained in:
@@ -1,19 +1,22 @@
|
||||
using System;
|
||||
using BriarQueen.Data.Identifiers;
|
||||
using BriarQueen.Framework.Assets;
|
||||
using BriarQueen.Framework.Coordinators.Events;
|
||||
using BriarQueen.Framework.Events.UI;
|
||||
using BriarQueen.Framework.Managers.Assets;
|
||||
using BriarQueen.Framework.Managers.IO;
|
||||
using BriarQueen.Framework.Managers.Levels;
|
||||
using BriarQueen.Framework.Registries;
|
||||
using Cysharp.Threading.Tasks;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
using UnityEngine.ResourceManagement.AsyncOperations;
|
||||
using UnityEngine.ResourceManagement.ResourceProviders;
|
||||
using UnityEngine.SceneManagement;
|
||||
using VContainer;
|
||||
|
||||
#if UNITY_EDITOR
|
||||
using UnityEditor;
|
||||
#endif
|
||||
|
||||
namespace BriarQueen.Framework.Services.Game
|
||||
{
|
||||
public class GameService
|
||||
@@ -75,7 +78,7 @@ namespace BriarQueen.Framework.Services.Game
|
||||
_eventCoordinator.PublishImmediate(new FadeEvent(false, fadeDuration));
|
||||
await UniTask.Delay(TimeSpan.FromSeconds(fadeDuration));
|
||||
|
||||
await UnloadGameSceneIfLoaded();
|
||||
await PrepareToLeaveGameplayScene();
|
||||
|
||||
if (_assetRegistry == null ||
|
||||
!_assetRegistry.TryGetReference(
|
||||
@@ -193,6 +196,12 @@ namespace BriarQueen.Framework.Services.Game
|
||||
}
|
||||
}
|
||||
|
||||
private async UniTask PrepareToLeaveGameplayScene()
|
||||
{
|
||||
await _levelManager.UnloadLevel();
|
||||
await UnloadGameSceneIfLoaded();
|
||||
}
|
||||
|
||||
public async UniTask SwapGameSceneHandle(AsyncOperationHandle<SceneInstance> nextSceneHandle)
|
||||
{
|
||||
if (!nextSceneHandle.IsValid())
|
||||
@@ -208,7 +217,10 @@ namespace BriarQueen.Framework.Services.Game
|
||||
}
|
||||
|
||||
if (_gameSceneHandle.IsValid())
|
||||
{
|
||||
await _levelManager.UnloadLevel();
|
||||
await _addressableManager.UnloadSceneAsync(_gameSceneHandle);
|
||||
}
|
||||
|
||||
_gameSceneHandle = nextSceneHandle;
|
||||
SceneManager.SetActiveScene(nextSceneHandle.Result.Scene);
|
||||
@@ -223,4 +235,4 @@ namespace BriarQueen.Framework.Services.Game
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user