본문으로 건너뛰기

매니저 시스템

AchEngine의 매니저 시스템은 게임에서 반복적으로 필요한 기능들을 DI로 등록하고, ServiceLocator를 통해 어디서든 접근할 수 있게 합니다.

제공 매니저

매니저역할
ConfigManagerPlayerPrefs 기반 설정값 저장/불러오기
AudioManagerBGM / SFX 재생, 페이드, 뮤트, 3D 공간 음향
AchSceneManager비동기 씬 전환, IScene 라이프사이클
InputManager입력 활성화/비활성화 래퍼
TimeManager네트워크 동기화 시간, 1초 이벤트
PoolManager프리팹 기반 오브젝트 풀링
PlayerManager플레이어 데이터 컨테이너 관리 (Add / Get / Remove)
SaveManager저장·불러오기·삭제 — ISaveService 기반 추상화 (별도 DI 등록 필요)
IAPManagerUnity IAP 5.3.0 연동 stub (별도 DI 등록 필요)

빠른 시작

1. AchManagerInstaller 추가

AchEngineScope의 Installers 배열에 AchManagerInstaller 컴포넌트를 추가합니다.

// 씬의 AchEngineScope GameObject에 AchManagerInstaller 컴포넌트를 추가하기만 하면 됩니다.
// 모든 매니저가 자동으로 DI 컨테이너에 싱글톤으로 등록됩니다.

선택적으로 등록하려면 AchManagerInstaller를 상속하세요:

public class MyInstaller : AchManagerInstaller
{
public override void Install(IServiceBuilder builder)
{
builder
.Register<ConfigManager>()
.Register<AudioManager>();
// 필요한 것만 등록
}
}

2. 매니저 접근

using AchEngine.DI;
using AchEngine.Managers;

var config = ServiceLocator.Resolve<ConfigManager>();
var audio = ServiceLocator.Resolve<AudioManager>();

IScene 라이프사이클

씬의 루트 GameObject에 IScene을 구현하는 MonoBehaviour를 붙이면 AchSceneManager가 씬 전환 시 자동으로 OnSceneStart / OnSceneEnd를 호출합니다.

using AchEngine.Managers;

public class LobbyScene : MonoBehaviour, IScene
{
public async Task OnSceneStart()
{
await LoadUserDataAsync();
}

public Task OnSceneEnd() => Task.CompletedTask;
}

런타임 async API는 System.Threading.Tasks.Task를 사용합니다.