1

我使用工厂从预制件中创建游戏对象。

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 但它没有帮助。

4

1 回答 1

1

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

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

于 2017-11-06T00:31:13.837 回答