0

我已将我们的编辑器脚本编译成一个 .dll 文件,并将其放在/Assets/Editor目录中:

在此处输入图像描述

这些扩展脚本菜单正确显示在编辑器中:

在此处输入图像描述

但是当我单击菜单时它有这个 TypeLoadException 。“Util”类型实际上在“UnityVS.x3dgame.CSharp.csproj”项目中,这也是一个库项目。

TypeLoadException: Could not load type 'Util' from assembly 'EditorLibrary'.
Scene2DBundleTool.GenerateSceneEffectLuaEditor ()

在此处输入图像描述

我不知道如何解决这个问题。

以下是更多信息: 解决方案结构:

在此处输入图像描述

编辑器库参考:

在此处输入图像描述

把招工广告。

4

1 回答 1

1

您收到此错误是因为您没有正确构建 dll。如果您想在您自己的 dll 中包含 Unity 的 API,您还必须添加 Unity 对 dll 的引用,以便您的 dll 可以使用这些 API。

您必须有基本的参考资料,例如SystemSystem.CoreSystem.Xml

现在,您必须在构建 dll 项目之前将 Unity 的引用添加到您的 dll 项目中。添加的 dll 引用取决于 Unity API 的来源。

独立 API

  • UnityEngine.dll - 来自C:\Program Files\Unity\Editor\Data\Managed

编辑器 API

  • UnityEditor.dll - 来自 C:\Program Files\Unity\Editor\Data\Managed

用户界面

  • UnityEngine.UI.dll - 来自 C:\Program Files\Unity\Editor\Data\UnityExtensions\Unity\GUISystem

    【编辑器特点】:

  • UnityEditor.UI.dll - 来自 C:\Program Files\Unity\Editor\Data\UnityExtensions\Unity\GUISystem\Editor

最后,确保在构建之前在您的 dll 项目中选择正确的 .NET 框架。.Net Framework 2.0应该没问题。

我们的 Unity 的路径可能不同,但是一旦找到安装它的根路径,其他一切都是一样的。

笔记:

当我说添加引用时,我的意思是添加对您正在构建的库项目的引用,而不是对您的 Unity 项目的引用。在 Visual Studio 中,这可以通过转到Projects ---> Add Reference... ---> Browse...(Button)然后选择适当的 dll 文件来完成。

于 2018-03-08T15:12:33.567 回答