feat: Enhance scene transition management and HUD scaffolding

- Added RequestTransition method to ISceneService for direct scene transition requests without needing Inspector SO references.
- Updated DoorTransition and RoomTransition to utilize the new RequestTransition method via ServiceLocator.
- Introduced SceneFadeController to manage scene fade effects during transitions, with event channel integration for fade requests.
- Created HUDScaffoldWizard to automate HUD Canvas setup, including various UI elements and event channel bindings.
- Updated assembly definitions to include necessary dependencies for new UI components.
- Added Streaming assets for budget configuration to optimize scene loading and memory management.
This commit is contained in:
2026-06-03 08:08:27 +08:00
parent d27ae9407d
commit 613f2a4d13
15 changed files with 1285 additions and 64 deletions

View File

@@ -10,6 +10,12 @@ namespace BaseGames.Core
/// </summary>
public interface ISceneService
{
/// <summary>
/// 直接触发场景过渡请求(无需 Inspector SO 引用)。
/// 游戏场景物体RoomTransition、DoorTransition 等)通过 ServiceLocator 调用此方法,
/// 替代手动拖拽 SceneLoadRequestEventChannelSO。
/// </summary>
void RequestTransition(SceneLoadRequest request);
/// <summary>异步加载指定场景Additive。</summary>
IEnumerator LoadSceneCoroutine(SceneLoadRequest request);
/// <summary>卸载当前房间场景(保留 Persistent。</summary>
@@ -69,6 +75,9 @@ namespace BaseGames.Core
private void OnDisable() => _subscriptions.Clear();
/// <inheritdoc cref="ISceneService.RequestTransition"/>
public void RequestTransition(SceneLoadRequest request) => HandleSceneLoadRequest(request);
private void HandleSceneLoadRequest(SceneLoadRequest request)
{
// Seamless / AtmosphericFade 由 ITransitionDirector 处理(需要预加载支持)