Files
XRLib/Assets/Scripts/Studio/StudioSceneContext.cs
2025-12-15 20:17:38 +09:00

39 lines
1.4 KiB
C#

#nullable enable
using UnityEngine;
using UVC.Core;
using UVC.UI.Menu;
using UVC.UI.ToolBar;
using UVC.UI.Window.PropertyWindow;
namespace UVC.Studio
{
public class StudioSceneContext : InjectorSceneContext
{
[SerializeField] private Toolbox? toolbox;
[SerializeField] private StudioSideTabBar? sideTabBar;
[SerializeField] private PropertyWindow? propertyWindow;
[SerializeField] private TopMenuController? topMenu;
/// <summary>
/// Scene 라이프사이클 서비스들을 등록합니다.
/// 씬 로드 시 자동 호출되며, 씬 전환 시 자동으로 정리됩니다.
/// </summary>
protected override void RegisterSceneServices()
{
base.RegisterSceneServices();
// 여기에 StudioSceneContext에 등록할 서비스들을 추가하세요.
Injector.RegisterSingleton<StudioSceneMain>();
if(toolbox != null) Injector.RegisterInstance<Toolbox>(toolbox, ServiceLifetime.Scene);
if(sideTabBar != null) Injector.RegisterInstance<StudioSideTabBar>(sideTabBar, ServiceLifetime.Scene);
if(propertyWindow != null) Injector.RegisterInstance<PropertyWindow>(propertyWindow, ServiceLifetime.Scene);
if(topMenu != null) Injector.RegisterInstance<TopMenuController>(topMenu, ServiceLifetime.Scene);
}
}
}