注入附加到预制子游戏对象的组件

Inject components attached to child GameObjects of prefab

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

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

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

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