using EasyInject.Utils;
using UnityEngine;
namespace EasyInject.Controllers
{
///
/// author: spyn
/// description: 全局初始化器
///
///
/// 这里必须设置为最高优先级,因为要在场景加载前初始化,不然就会调用其他的Awake方法
///
[DefaultExecutionOrder(-1000000)]
public class GlobalInitializer : MonoBehaviour
{
// 实例化一个IoC容器,存入静态变量中,这样就可以导致整个游戏都只有一个IoC容器
public static readonly IIoC Instance = new MyIoC();
private void Awake()
{
// 每次进入场景都初始化IoC容器
Instance.Init();
}
private void OnDestroy()
{
// 清除该场景的所有Bean
Instance.ClearBeans(UnityEngine.SceneManagement.SceneManager.GetActiveScene().name);
}
}
}