UTKToolBar 개발 완료

This commit is contained in:
logonkhi
2026-02-19 18:40:37 +09:00
parent 0333b83b57
commit 739a62eb9b
112 changed files with 7496 additions and 46 deletions

View File

@@ -33,7 +33,7 @@ namespace Sample
/// </summary>
/// <remarks>
/// <para><b>구현체:</b> ConsoleLogger</para>
/// <para><b>등록:</b> Injector.Register&lt;ILogService, ConsoleLogger&gt;(ServiceLifetime.App)</para>
/// <para><b>등록:</b> Injector.Register<ILogService, ConsoleLogger>(ServiceLifetime.App)</para>
/// <para><b>사용:</b> [Inject] private ILogService _logger;</para>
/// </remarks>
public interface ILogService
@@ -73,8 +73,8 @@ namespace Sample
/// </summary>
/// <remarks>
/// <para><b>구현체:</b> SceneConfig</para>
/// <para><b>등록:</b> Injector.Register&lt;ISceneConfig, SceneConfig&gt;(ServiceLifetime.Scene)</para>
/// <para><b>또는 Factory:</b> Injector.RegisterFactory&lt;ISceneConfig&gt;(injector => new SceneConfig { ... })</para>
/// <para><b>등록:</b> Injector.Register<ISceneConfig, SceneConfig>(ServiceLifetime.Scene)</para>
/// <para><b>또는 Factory:</b> Injector.RegisterFactory<ISceneConfig>(injector => new SceneConfig { ... })</para>
/// </remarks>
public interface ISceneConfig
{
@@ -129,7 +129,7 @@ namespace Sample
/// <example>
/// <code>
/// // 등록
/// Injector.Register&lt;IGameService, GameService&gt;(ServiceLifetime.App);
/// Injector.Register<IGameService, GameService>(ServiceLifetime.App);
///
/// // 사용
/// [Inject] private IGameService _gameService;
@@ -154,7 +154,7 @@ namespace Sample
/// <remarks>
/// <para><b>구현체:</b> InjectorSampleAudioManager (별도 파일)</para>
/// <para><b>타입:</b> Type B - MonoBehaviour 동적 생성</para>
/// <para><b>등록:</b> Injector.Register&lt;IAudioManager, InjectorSampleAudioManager&gt;(ServiceLifetime.App)</para>
/// <para><b>등록:</b> Injector.Register<IAudioManager, InjectorSampleAudioManager>(ServiceLifetime.App)</para>
/// <para><b>특징:</b> 런타임에 새 GameObject가 생성되고 AudioSource 등 Unity 컴포넌트 활용 가능</para>
/// </remarks>
public interface IAudioManager
@@ -173,7 +173,7 @@ namespace Sample
/// <remarks>
/// <para><b>구현체:</b> InjectorSampleEnemySpawner (별도 파일)</para>
/// <para><b>타입:</b> Type B - MonoBehaviour 동적 생성</para>
/// <para><b>등록:</b> Injector.Register&lt;IEnemySpawner, InjectorSampleEnemySpawner&gt;(ServiceLifetime.Scene)</para>
/// <para><b>등록:</b> Injector.Register<IEnemySpawner, InjectorSampleEnemySpawner>(ServiceLifetime.Scene)</para>
/// <para><b>라이프사이클:</b> Scene - 씬 전환 시 적 스포너와 생성된 적들이 함께 정리됨</para>
/// </remarks>
public interface IEnemySpawner
@@ -194,7 +194,7 @@ namespace Sample
/// <remarks>
/// <para><b>구현체:</b> InjectorSampleUIManager (별도 파일)</para>
/// <para><b>타입:</b> Type C - Prefab 기반 MonoBehaviour</para>
/// <para><b>등록:</b> Injector.RegisterPrefab&lt;IUIManager&gt;(uiManagerPrefab, ServiceLifetime.App)</para>
/// <para><b>등록:</b> Injector.RegisterPrefab<IUIManager>(uiManagerPrefab, ServiceLifetime.App)</para>
/// <para><b>특징:</b></para>
/// <list type="bullet">
/// <item><description>프리팹에 미리 설정된 UI 요소들이 유지됨</description></item>
@@ -220,7 +220,7 @@ namespace Sample
/// <remarks>
/// <para><b>구현체:</b> InjectorSampleSceneUI (별도 파일)</para>
/// <para><b>타입:</b> Type C - Prefab 기반 MonoBehaviour</para>
/// <para><b>등록:</b> Injector.RegisterPrefab&lt;ISceneUI&gt;(sceneUIPrefab, ServiceLifetime.Scene)</para>
/// <para><b>등록:</b> Injector.RegisterPrefab<ISceneUI>(sceneUIPrefab, ServiceLifetime.Scene)</para>
/// <para><b>라이프사이클:</b> Scene - 씬 전환 시 UI가 함께 정리됨</para>
/// </remarks>
public interface ISceneUI
@@ -268,11 +268,11 @@ namespace Sample
/// <example>
/// <code>
/// // 등록
/// Injector.Register&lt;IRequestHandler, RequestHandler&gt;(ServiceLifetime.Transient);
/// Injector.Register<IRequestHandler, RequestHandler>(ServiceLifetime.Transient);
///
/// // 사용 - 매번 다른 인스턴스
/// var handler1 = Injector.Resolve&lt;IRequestHandler&gt;(); // RequestId: "a1b2c3d4"
/// var handler2 = Injector.Resolve&lt;IRequestHandler&gt;(); // RequestId: "e5f6g7h8"
/// var handler1 = Injector.Resolve<IRequestHandler>(); // RequestId: "a1b2c3d4"
/// var handler2 = Injector.Resolve<IRequestHandler>(); // RequestId: "e5f6g7h8"
/// </code>
/// </example>
public class RequestHandler : IRequestHandler