gpt4 book ai didi

c# - Zenject 游戏对象注入(inject)

转载 作者:太空狗 更新时间:2023-10-30 01:31:46 24 4
gpt4 key购买 nike

我正在使用 Zenject框架,我正在为一个类使用多个 GameObject 但我不知道如何使用 Zenject Container 来完成它。这是我的代码:

private GameObject _canvas;
private GameObject _mainWindow;
private GameObject _createAccountWindow;

void Awake()
{
_mainWindow = GameObject.FindGameObjectWithTag("MainWindow");
_canvas = GameObject.FindGameObjectWithTag("Canvas");
_createAccountWindow = GameObjectExtensions.FindObject(_canvas, "CreateAccountWindow");
}

是否可以从 Zenject 容器中注入(inject)这些对象?如果是,我该怎么做?

最佳答案

使用 Zenject,这些类将像这样注入(inject):

[Inject]
GameObject _canvas;

[Inject]
GameObject _mainWindow;

[Inject]
GameObject _createAccountWindow;

但是,当您使用 DI 时,它通常会根据类型进行注入(inject),因此将它们全部设为“GameObject”类型会使这变得困难。

但是如果你把它变成这样:

[Inject]
Canvas _canvas;

[Inject(Id = "MainWindow")]
RectTransform _mainWindow;

[Inject(Id = "CreateAccountWindow")]
RectTransform _createAccountWindow;

然后还向其中的每一个添加 ZenjectBinding 组件,并为 ZenjectBinding 的 Identifier 属性添加一个值,然后它应该可以工作了。 (我假设他们在启动时已经在现场了)

关于c# - Zenject 游戏对象注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39675451/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com