7

在我的 Unity 项目中,我有 3 个 Visual Studio 项目:Assembly-CSharp-vs Assembly-CSharp-firstpass-vs Assembly-CSharp-Editor-vs

我所有的脚本似乎都以 Assembly-CSharp-firstpass-vs 结尾,但我正在使用的导入资产(2dtoolkit)的代码在 Assembly-CSharp-vs ... 这意味着我无法从Assembly-CSharp-firstpass-vs,因为没有对 Assembly-CSharp-vs 的引用(不应该以这种方式引用)。

那么,处理这个问题的“正确”方法是什么?我想要么我必须将我的脚本文件移动到 Assembly-CSharp-vs,要么我必须将我的资产源移动到 Assembly-CSharp-firstpass-vs..

4

1 回答 1

6

如果您的脚本最终出现在 Assembly-CSharp-firstpass-vs 项目中,这意味着在其文件夹层次结构的上方某个位置,您有一个名为“Plugins”、“Standard Assets”或“Pro Standard Assets”的文件夹。这会导致您的脚本在 4 个可能的编译步骤中的第一个进行编译。因此,Unity 会将您的代码文件放在 Assembly-CSharp-firstpass-vs 项目中。

为了能够从您的代码中访问 2DToolkit,我建议您移动所有脚本文件,这样它们就不会放在任何这些文件夹下。这将导致它们被放置在 Assembly-CSharp-vs 项目中。

如果您使用的是 C#,它现在应该可以工作了。但是,如果您已经在 UnityScript(JavaScript) 或 Boo 中编写了自己的代码,则必须将 2DToolkit 放在名为 Plugins 的文件夹中(或“标准资产”或“Pro Standard Assets”,如果您愿意的话),以便它在您的代码之前编译.

查看 Unity 手册中的脚本编译页面,了解有关如何控制脚本编译顺序的更深入信息。

于 2012-07-04T00:01:04.823 回答