Unity:注入动态生成的实例

问题描述 投票:0回答:0

我正在尝试统一使用 Zenject。

就我而言,我想让接下来的工作:

  • 游戏对象可以由关卡设计师正常放置在场景中。
  • 然后是一些类,我们将其命名为
    LevelInitializer
    通过
    TView
    通过正常的Zenject注入从放置的游戏对象中获取所有
    Enumarable<TView>
    。从这一步开始,我们有一个类引用场景中的所有
    TView
    组件。
  • 然后我想为每个
    TView
    实例创建一些模型类,我们将其命名为
    TModel
    。我也希望其他一些类可以动态地注入这个
    TModel
    .

据我所知,DI 应该在开始时安装所有绑定,重新绑定/重新注入东西被认为是不好的做法。 我认为最合适的解决方案是:拥有我上面描述的所有内容。然后对于每个这样的动态生成多个实例,我可以有

TCollector
它只存储引用。每个想要获得
TModel
实例的类中的每一个都可以使用方法
IInitializeReceiver<T>
实现
Receive(IEnumerable<T> values)
并将其绑定到自身,因此
LevelInitializer
可以将创建的
TModel
发送给所有接收者,无论他们想要什么做它。

所描述的解决方案是一个好方法吗?或者,也许你可以就我的问题给出一些建议,比如 Zenject 的明显最佳实践?

c# unity3d zenject
© www.soinside.com 2019 - 2024. All rights reserved.