我收到一个ZenjectException: Unable to resolve 'Facade'. Object graph:
我无法理解的错误。
我一直在关注这个例子,但我无法让我的代码工作。
我有一个包含以下组件的预制件:
Facade
FacadeInstaller
Game Object Context
(参考FacadeInstaller
上述)
Facade
班级:
using UnityEngine;
using Zenject;
public class Facade : MonoBehaviour
{
public class Factory : PlaceholderFactory<Argument, Facade> { }
}
FacadeInstaller
班级:
public class FacadeInstaller : MonoInstaller
{
[Inject]
Argument arg;
public override void InstallBindings()
{
Container.BindInstance(arg);
}
}
Argument
班级:
public class Argument
{
public string val;
}
在场景中,我有一个SceneContext
引用以下安装程序:
using UnityEngine;
using Zenject;
public class SceneInstaller : MonoInstaller
{
public GameObject prefab;
public override void InstallBindings()
{
Container.BindFactory<Argument, Facade, Facade.Factory>()
.FromSubContainerResolve()
.ByNewContextPrefab<FacadeInstaller>(prefab);
}
}
其中prefab
在检查器中链接到我上面详述的那个。
如果我离开,场景验证成功。
现在,当我使用以下组件向场景添加另一个游戏对象时,问题就出现了:
using UnityEngine;
using Zenject;
public class Creator : MonoBehaviour
{
[Inject]
Facade.Factory factory;
}
并且场景验证失败并出现错误:
ZenjectException: Unable to resolve 'Facade'. Object graph:
我的设置有什么问题?