注入附加到预制件的子GameObjects的组件

时间:2017-11-05 15:55:43

标签: unity3d zenject

我使用Factories从预制件创建GameObjects。

MenuScreen (prefab root game object)
  * MenuScreenComponent <- inject ScreensNavigator
  - Button (game object)
    * ButtonSoundBehaviour <- inject AssetsProvider

在安装程序中:

Container.BindFactory<MenuScreen, MenuScreen.Factory>().FromComponentInNewPrefab(MenuFragmentPrefab);

ScreensNavigator注入MenuScreenComponent没有任何问题。

如何ButtonSoundBehaviour注入AssetsProvider? 我试图将Zenject Binding添加到Button GameObject,但它没有帮助。

1 个答案:

答案 0 :(得分:1)

您需要通过在容器上为它添加绑定来告诉zenject在哪里找到AssetsProvider。

例如,如果您将Container.Bind<AssetsProvider>().AsSingle()添加到安装程序,则ButtonSoundBehaviour会将AssetsProvider注入其中。