using UnityEngine;
using VContainer;
using Vanguard.UI;
namespace Vanguard.App
{
/// База контроллера сцены: доступ к персистентным сервисам и Canvas.
public abstract class SceneControllerBase : MonoBehaviour
{
protected VanguardApp App { get; private set; }
protected IObjectResolver Container => App.Container;
protected SceneFlow Flow => App.Flow;
protected virtual void Awake()
{
App = VanguardApp.Instance;
if (App == null)
{
Debug.LogError("VanguardApp не создан. Запусти игру из Boot или через Play в любой сцене клиента.");
enabled = false;
}
}
protected Canvas CreateCanvas(string name)
{
return UiKit.CreateCanvas(name, persistent: false);
}
protected T Resolve() where T : class => Container.Resolve();
}
}