【发布时间】:2016-06-14 04:05:18
【问题描述】:
我一直在阅读有关 Unity 的依赖注入的信息,我知道这是一回事,它允许您将类键入到接口中。我很好奇的是,我必须这样做吗?在下面的场景中,TerrainGenerator 和 TileCreator 在同一个空间中。如何在生成器中获取 TileCreator 作为依赖项?
http://geekswithblogs.net/danielggarcia/archive/2014/01/23/introduction-to-dependency-injection-with-unity.aspx 引导我注册一个类型,但我在某处读到,只要该类在 Unity Assets 部分可见,它就能够自动注入它,我只是无法弄清楚语法(如果可能的话)。
更新
我可以将所有类放在一个文件中...使用一个可能很烦人的大型系统。同时,这是我会尝试的一种方法 - 总比完全不起作用要好。
更新 似乎 Unity 应该能够查看类的构造函数并自动执行这些解析并将它们注入我的类的构造函数中。这可能吗?
【问题讨论】:
-
你确定unity3d 有依赖注入吗?你确定你没有读过微软同样命名的unity吗?您链接到的链接是在谈论 Microsoft's Unity,而不是 Unity Technologies 的 Unity。目前尚不清楚您要实现的目标,您能否详细解释一下您要实现的目标?
-
我肯定在问 Unity3d,我没有意识到这是两个不同的东西。感谢您指出这一点。
-
你不应该碰
MonoBehavior类的构造函数。您的问题过于集中在使依赖注入工作上,而您没有充分解释为什么首先需要使依赖注入工作,这被称为@ 987654326@,重新处理您的问题并添加有关您遇到的真正问题的更多详细信息(“在同一个空间中有一个 TerrainGenerator 和 TileCreator”),人们将能够帮助您... -
依赖注入在 Unity3d 中不是必需的,在 Unity 的系统中有“更合适”的方法来处理它,但如果没有更多关于你到底是什么的详细信息,我们无法告诉你哪种方法是正确的尝试做。
-
@ScottChamberlain 有问题的类会生成地形。随着时间的推移,它还会放置树木、不同类型的资源等资产,并确定给定的地形是否为水。我试图避免所有这些逻辑都在一个嵌套的类中。