UTKToolBar 개발 완료
This commit is contained in:
@@ -13,13 +13,13 @@ namespace Sample
|
||||
/// <para><b>[ 특징 ]</b></para>
|
||||
/// <list type="bullet">
|
||||
/// <item><description>프리팹 없이 런타임에 새 GameObject가 자동 생성됨</description></item>
|
||||
/// <item><description>Injector가 new GameObject().AddComponent<T>()로 생성</description></item>
|
||||
/// <item><description>Injector가 new GameObject().AddComponent<T>()로 생성</description></item>
|
||||
/// <item><description>App 라이프사이클이면 DontDestroyOnLoad 자동 적용</description></item>
|
||||
/// <item><description>다른 서비스([Inject] ILogService)에 대한 의존성 주입 지원</description></item>
|
||||
/// </list>
|
||||
///
|
||||
/// <para><b>[ 등록 방법 ]</b></para>
|
||||
/// <code>Injector.Register<IAudioManager, InjectorSampleAudioManager>(ServiceLifetime.App);</code>
|
||||
/// <code>Injector.Register<IAudioManager, InjectorSampleAudioManager>(ServiceLifetime.App);</code>
|
||||
///
|
||||
/// <para><b>[ 사용 방법 ]</b></para>
|
||||
/// <code>
|
||||
@@ -41,8 +41,8 @@ namespace Sample
|
||||
///
|
||||
/// private void Awake()
|
||||
/// {
|
||||
/// bgmSource = gameObject.AddComponent<AudioSource>();
|
||||
/// sfxSource = gameObject.AddComponent<AudioSource>();
|
||||
/// bgmSource = gameObject.AddComponent<AudioSource>();
|
||||
/// sfxSource = gameObject.AddComponent<AudioSource>();
|
||||
/// bgmSource.loop = true;
|
||||
/// }
|
||||
/// </code>
|
||||
|
||||
@@ -7,7 +7,7 @@ namespace Sample
|
||||
/// Type D 예시: MonoBehaviour SingletonApp - 네트워크 관리자
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// <para><b>[ 타입 ]</b> Type D - MonoBehaviour SingletonApp (SingletonApp<T> 상속)</para>
|
||||
/// <para><b>[ 타입 ]</b> Type D - MonoBehaviour SingletonApp (SingletonApp<T> 상속)</para>
|
||||
/// <para><b>[ 라이프사이클 ]</b> App - 씬 전환 시에도 유지 (DontDestroyOnLoad)</para>
|
||||
///
|
||||
/// <para><b>[ 특징 ]</b></para>
|
||||
@@ -19,7 +19,7 @@ namespace Sample
|
||||
/// </list>
|
||||
///
|
||||
/// <para><b>[ 등록 방법 ]</b></para>
|
||||
/// <code>Injector.RegisterSingleton<InjectorSampleNetworkManager>();</code>
|
||||
/// <code>Injector.RegisterSingleton<InjectorSampleNetworkManager>();</code>
|
||||
///
|
||||
/// <para><b>[ 씬 설정 (선택) ]</b></para>
|
||||
/// <list type="number">
|
||||
@@ -40,8 +40,8 @@ namespace Sample
|
||||
///
|
||||
/// <para><b>[ InjectorSampleSettingsManager와의 차이점 ]</b></para>
|
||||
/// <list type="table">
|
||||
/// <item><term>SettingsManager</term><description>Singleton<T> - 순수 C#, GameObject 없음</description></item>
|
||||
/// <item><term>NetworkManager</term><description>SingletonApp<T> - MonoBehaviour, GameObject 필요</description></item>
|
||||
/// <item><term>SettingsManager</term><description>Singleton<T> - 순수 C#, GameObject 없음</description></item>
|
||||
/// <item><term>NetworkManager</term><description>SingletonApp<T> - MonoBehaviour, GameObject 필요</description></item>
|
||||
/// </list>
|
||||
/// </remarks>
|
||||
public class InjectorSampleNetworkManager : SingletonApp<InjectorSampleNetworkManager>
|
||||
|
||||
@@ -7,7 +7,7 @@ namespace Sample
|
||||
/// Type D 예시: 순수 C# Singleton - 게임 설정 관리자
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// <para><b>[ 타입 ]</b> Type D - 순수 C# Singleton (Singleton<T> 상속)</para>
|
||||
/// <para><b>[ 타입 ]</b> Type D - 순수 C# Singleton (Singleton<T> 상속)</para>
|
||||
/// <para><b>[ 라이프사이클 ]</b> App - 애플리케이션 전체 유지</para>
|
||||
///
|
||||
/// <para><b>[ 특징 ]</b></para>
|
||||
@@ -19,7 +19,7 @@ namespace Sample
|
||||
/// </list>
|
||||
///
|
||||
/// <para><b>[ 등록 방법 ]</b></para>
|
||||
/// <code>Injector.RegisterSingleton<InjectorSampleSettingsManager>();</code>
|
||||
/// <code>Injector.RegisterSingleton<InjectorSampleSettingsManager>();</code>
|
||||
///
|
||||
/// <para><b>[ 사용 방법 ]</b></para>
|
||||
/// <code>
|
||||
|
||||
@@ -34,7 +34,7 @@ namespace Sample
|
||||
///
|
||||
/// protected override void RegisterServices()
|
||||
/// {
|
||||
/// Injector.RegisterPrefab<IUIManager>(uiManagerPrefab.gameObject, ServiceLifetime.App);
|
||||
/// Injector.RegisterPrefab<IUIManager>(uiManagerPrefab.gameObject, ServiceLifetime.App);
|
||||
/// }
|
||||
/// </code>
|
||||
///
|
||||
|
||||
@@ -33,7 +33,7 @@ namespace Sample
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// <para><b>구현체:</b> ConsoleLogger</para>
|
||||
/// <para><b>등록:</b> Injector.Register<ILogService, ConsoleLogger>(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<ISceneConfig, SceneConfig>(ServiceLifetime.Scene)</para>
|
||||
/// <para><b>또는 Factory:</b> Injector.RegisterFactory<ISceneConfig>(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<IGameService, GameService>(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<IAudioManager, InjectorSampleAudioManager>(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<IEnemySpawner, InjectorSampleEnemySpawner>(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<IUIManager>(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<ISceneUI>(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<IRequestHandler, RequestHandler>(ServiceLifetime.Transient);
|
||||
/// Injector.Register<IRequestHandler, RequestHandler>(ServiceLifetime.Transient);
|
||||
///
|
||||
/// // 사용 - 매번 다른 인스턴스
|
||||
/// var handler1 = Injector.Resolve<IRequestHandler>(); // RequestId: "a1b2c3d4"
|
||||
/// var handler2 = Injector.Resolve<IRequestHandler>(); // RequestId: "e5f6g7h8"
|
||||
/// var handler1 = Injector.Resolve<IRequestHandler>(); // RequestId: "a1b2c3d4"
|
||||
/// var handler2 = Injector.Resolve<IRequestHandler>(); // RequestId: "e5f6g7h8"
|
||||
/// </code>
|
||||
/// </example>
|
||||
public class RequestHandler : IRequestHandler
|
||||
|
||||
Reference in New Issue
Block a user