VanguardReMaster/client/Assets/Vanguard/Runtime/App/SceneControllerBase.cs

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>();
}
}