不要使用GameObject.Instance方法来实例化游戏物体
如果你想实例化一个Prefab,Prefab上的脚本有Inject的时候,推荐使用factory来处理生成新游戏物体;
或者使用DiContainer里面提供的静态方法InstantiatePrefab()
Container.InstantiatePrefab(prefab, parentTransform);
使用这样统一的方式处理之后,所有包含了[Inject]标签的框架内容全部由容器来处理
最好练习DI的方法是引用组合的最外层
大概意思是说类关系不要嵌套太复杂,每次注入引用的时候,在构建的时候一次性就可以取到想要的数据
工厂部分属于最外层的容器
不要使用IInitializable、ITickable和IDisposable动态创建物体
- IInitializable只会在Unity启动的时候初始化一次,如果你通过工厂来创建一个物体,继承自IInitializable,方法不会被调用
- ITickable和IDisposable同样&