32 lines
1.0 KiB
C#
32 lines
1.0 KiB
C#
using UnityEngine;
|
|
using VContainer;
|
|
using Vanguard.UI;
|
|
|
|
namespace Vanguard.App
|
|
{
|
|
/// <summary>База контроллера сцены: доступ к персистентным сервисам и Canvas.</summary>
|
|
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<T>() where T : class => Container.Resolve<T>();
|
|
}
|
|
}
|