using System.Collections.Generic; using UnityEngine; namespace EasyInject.Utils { public interface IIoC { /// /// 创建一个GameObject作为Bean /// /// 原型 /// 名字 /// Bean类型 /// Bean实例 T CreateGameObjectAsBean(GameObject original, string beanName) where T : MonoBehaviour; /// /// 创建一个GameObject作为Bean /// /// 原型 /// 名字 /// 父物体 /// Bean类型 /// Bean实例 T CreateGameObjectAsBean(GameObject original, string beanName, Transform parent) where T : MonoBehaviour; /// /// 创建一个GameObject作为Bean /// /// 原型 /// 名字 /// 父物体 /// 是否在世界空间中实例化 /// Bean类型 /// Bean实例 T CreateGameObjectAsBean(GameObject original, string beanName, Transform parent, bool instantiateInWorldSpace) where T : MonoBehaviour; /// /// 创建一个GameObject作为Bean /// /// 原型 /// 名字 /// 位置 /// 旋转 /// Bean类型 /// Bean实例 T CreateGameObjectAsBean(GameObject original, string beanName, Vector3 position, Quaternion rotation) where T : MonoBehaviour; /// /// 创建一个GameObject作为Bean /// /// 原型 /// 名字 /// 位置 /// 旋转 /// 父物体 /// Bean类型 /// Bean实例 T CreateGameObjectAsBean(GameObject original, string beanName, Vector3 position, Quaternion rotation, Transform parent) where T : MonoBehaviour; /// /// 删除一个游戏物体Bean /// /// Bean实例 /// Bean名字 /// 是否删除游戏物体 /// 延迟时间 /// Bean类型 /// 是否删除成功 bool DeleteGameObjBean(T bean, string beanName = "", bool deleteGameObj = false, float t = 0.0F) where T : MonoBehaviour; /// /// 立即删除一个游戏物体Bean /// /// Bean实例 /// Bean名字 /// 是否删除游戏物体 /// Bean类型 /// 是否删除成功 bool DeleteGameObjBeanImmediate(T bean, string beanName = "", bool deleteGameObj = false) where T : MonoBehaviour; /// /// 只添加实例Bean /// /// /// Bean实例 /// Bean名字 /// bool AddBean(T bean, string beanName) where T : MonoBehaviour; /// /// 获取一个Bean /// /// Bean的名字 /// Bean的类型 /// Bean实例 T GetBean(string name = "") where T : class; List GetBeans() where T : class; /// /// 获取场景中需要注入的MonoBehaviour实例 /// void Init(); /// /// 清空该场景的Bean /// /// 场景名称 /// 是否清空跨场景的Bean void ClearBeans(string scene = null, bool clearAcrossScenesBeans = false); /// /// 清空该场景的Bean /// /// 是否清空跨场景的Bean void ClearBeans(bool clearAcrossScenesBeans); } }