using System; using UnityEngine; using VContainer; using VContainer.Unity; public class GameLifetimeScope : LifetimeScope { [SerializeField] private PlatformPool pool; [SerializeField] private PlatformManager manager; [SerializeField] private InputReaderSO inputReader; [SerializeField] private Player player; [SerializeField] private AudioController audioController; //UI References [SerializeField] private GameScreenView gameScreenView; [SerializeField] private StartScreenView startScreenView; [SerializeField] private DeathScreenView deathScreenView; [SerializeField] private PauseScreenView pauseScreenView; protected override void Configure(IContainerBuilder builder) { builder.RegisterComponent(pool).As(); builder.RegisterComponent(manager).As(); builder.RegisterInstance(inputReader).As(); builder.Register(Lifetime.Singleton); builder.RegisterComponent(player); builder.RegisterComponent(audioController); builder.Register(Lifetime.Singleton).WithParameter(gameScreenView); builder.Register(Lifetime.Singleton).WithParameter(startScreenView); builder.Register(Lifetime.Singleton).WithParameter(deathScreenView); builder.Register(Lifetime.Singleton).WithParameter(pauseScreenView); builder.RegisterEntryPoint(Lifetime.Singleton); } }