Files
EnglewoodLAB/Assets/Scripts/AppContext.cs

70 lines
2.9 KiB
C#
Raw Normal View History

2026-01-20 11:27:56 +09:00
#nullable enable
using Cysharp.Threading.Tasks;
using UnityEngine;
using UVC.Util;
2026-01-20 11:27:56 +09:00
using UVC.Core;
using UVC.UI.Menu;
using UVC.Config;
using UVC.Studio.Config;
using UVC.Object3d.Manager;
using UVC.Studio.Manager;
using UVC.UI.Window.PropertyWindow;
2026-01-20 11:27:56 +09:00
namespace EnglewoodLAB
{
public class AppContext : InjectorAppContext
{
[SerializeField] private PropertyWindow? propertyWindow;
2026-01-20 11:27:56 +09:00
/// <summary>
2026-03-09 17:00:30 +09:00
/// App <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŭ <20><><EFBFBD>񽺵<EFBFBD><F1BDBAB5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>մϴ<D5B4>.
2026-01-20 11:27:56 +09:00
/// </summary>
/// <remarks>
2026-03-09 17:00:30 +09:00
/// <para><3E>񵿱<EFBFBD> <20>ε尡 <20>ʿ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>񽺵鸸 <20><><EFBFBD><20><><EFBFBD><EFBFBD>մϴ<D5B4>.</para>
/// <para><3E>񵿱<EFBFBD> <20>ε尡 <20>ʿ<EFBFBD><CABF><EFBFBD> <20><><EFBFBD>񽺴<EFBFBD> RegisterServicesAsync()<29><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ϼ<EFBFBD><CFBC><EFBFBD>.</para>
2026-01-20 11:27:56 +09:00
/// </remarks>
protected override void RegisterServices()
{
base.RegisterServices();
2026-03-09 17:00:30 +09:00
// <20>񵿱<EFBFBD> <20>ε尡 <20>ʿ<EFBFBD> <20><><EFBFBD><EFBFBD> <20>̱<EFBFBD><CCB1><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>
2026-01-20 11:27:56 +09:00
Injector.RegisterSingleton<AppMain>();
Injector.RegisterSingleton<CursorManager>();
Injector.RegisterSingleton<ContextMenuManager>();
}
/// <summary>
2026-03-09 17:00:30 +09:00
/// App <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŭ <20><><EFBFBD>񽺵<EFBFBD><F1BDBAB5><EFBFBD> <20>񵿱<EFBFBD><F1B5BFB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>մϴ<D5B4>.
2026-01-20 11:27:56 +09:00
/// </summary>
2026-03-09 17:00:30 +09:00
/// <returns><3E>񵿱<EFBFBD> <20><><EFBFBD> <20>Ϸ<EFBFBD> UniTask</returns>
2026-01-20 11:27:56 +09:00
/// <remarks>
2026-03-09 17:00:30 +09:00
/// <para><3E><> <20>޼<EFBFBD><DEBC><EFBFBD><EFBFBD> RegisterServices() <20>Ϸ<EFBFBD> <20><> await<69>Ǿ<EFBFBD> ȣ<><C8A3>˴ϴ<CBB4>.</para>
/// <para><3E>Ϸ<EFBFBD><CFB7> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IsInitialized<65><64> false<73><65> <20><><EFBFBD><EFBFBD><EFBFBD>ǹǷ<C7B9> <20><><EFBFBD><EFBFBD><EFBFBD>ϰ<EFBFBD> <20>񵿱<EFBFBD> <20>ε带 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ֽ<EFBFBD><D6BD>ϴ<EFBFBD>.</para>
2026-01-20 11:27:56 +09:00
/// </remarks>
protected override async UniTask RegisterServicesAsync()
{
await base.RegisterServicesAsync();
if (propertyWindow != null) Injector.RegisterInstance<PropertyWindow>(propertyWindow, ServiceLifetime.Scene);
2026-03-09 17:00:30 +09:00
// StageObjectManager <20><><EFBFBD>
var stageObjectManager = new StageObjectManager();
Injector.RegisterInstance<StageObjectManager>(stageObjectManager);
2026-03-09 17:00:30 +09:00
// SelectionManager <20><><EFBFBD> (StageObjectManager, PropertyWindow <20><><EFBFBD><EFBFBD>)
var selectionManager = new SelectionManager(stageObjectManager, propertyWindow);
Injector.RegisterInstance<SelectionManager>(selectionManager);
2026-03-09 17:00:30 +09:00
// Setting<6E><67> Library<72><79> <20><><EFBFBD>ķ<EFBFBD> <20>ε<EFBFBD>
2026-01-20 11:27:56 +09:00
var setting = new Setting();
var library = new Library();
await UniTask.WhenAll(
setting.LoadAsync(),
2026-01-20 11:27:56 +09:00
library.LoadAllParallelAsync()
);
2026-03-09 17:00:30 +09:00
// <20>ε<EFBFBD> <20>Ϸ<EFBFBD> <20><> <20>ν<EFBFBD><CEBD>Ͻ<EFBFBD> <20><><EFBFBD>
2026-01-20 11:27:56 +09:00
Injector.RegisterInstance<Setting>(setting);
Injector.RegisterInstance<Library>(library);
}
}
}