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:
@@ -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 处理(需要预加载支持)
|
||||
|
||||
Reference in New Issue
Block a user