Skip to main content

Manager System

AchEngine's manager system registers common game services via DI and exposes them globally through ServiceLocator.

Available Managers

ManagerResponsibility
ConfigManagerPlayerPrefs-backed key-value settings
AudioManagerBGM / SFX playback, fade, mute, and 3D spatial audio
AchSceneManagerAsync scene transitions with IScene lifecycle
InputManagerEnable/disable input wrapper
TimeManagerNetwork-synchronized time, 1-second tick event
PoolManagerPrefab-based object pooling
PlayerManagerTyped player data container management (Add / Get / Remove)
SaveManagerSave / load / delete — abstracted behind ISaveService (requires manual DI registration)
IAPManagerUnity IAP 5.3.0 integration stub (requires manual DI registration)

Quick Start

1. Add AchManagerInstaller

Add the AchManagerInstaller component to your AchEngineScope GameObject's Installers list. All managers are registered as singletons automatically.

To register only specific managers, subclass AchManagerInstaller:

public class MyInstaller : AchManagerInstaller
{
public override void Install(IServiceBuilder builder)
{
builder
.Register<ConfigManager>()
.Register<AudioManager>();
}
}

2. Access Managers

using AchEngine.DI;
using AchEngine.Managers;

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

IScene Lifecycle

Attach an IScene MonoBehaviour to the root of your scene. AchSceneManager will automatically call OnSceneStart / OnSceneEnd during transitions.

using AchEngine.Managers;

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

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

Runtime async APIs use System.Threading.Tasks.Task.