将统一编辑器脚本编译成 dll 后出现 TypeLoadException
TypeLoadException after compile unity editor script into dll
我已经将我们的编辑器脚本编译成一个 .dll 文件,并将其放在 /Assets/Editor
目录中:
这些扩展脚本菜单在编辑器中正确显示:
但是当我点击菜单时它有这个TypeLoadException。 'Util'类型其实在'UnityVS.x3dgame.CSharp.csproj'项目中,也是库项目
TypeLoadException: Could not load type 'Util' from assembly 'EditorLibrary'.
Scene2DBundleTool.GenerateSceneEffectLuaEditor ()
我不知道如何解决这个问题。
这里有更多信息:
解决方案结构:
EditorLibrary 引用:
需要帮助。
您收到此错误是因为您没有正确构建 dll。如果你想在你自己的dll中包含Unity的API,你必须同时添加对dll的Unity引用,这样你的dll才能使用那些API.
您必须使用基本参考资料,例如 System、System.Core 和 System.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
UI:
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
最后,确保 select 在您的 dll 项目中使用正确的 .NET 框架,然后再构建它。 .Net Framework 2.0应该没问题。
我们Unity的路径可能不同,但是一旦找到安装它的根路径,其他都是the-same。
备注:
当我说添加引用时,我的意思是添加对您正在构建的库项目的引用,而不是您的 Unity 项目。从 Visual Studio 开始,这可以通过转到 Projects ---> Add Reference... ---> 浏览...(按钮) 然后 select 适当的 dll 文件。
我已经将我们的编辑器脚本编译成一个 .dll 文件,并将其放在 /Assets/Editor
目录中:
这些扩展脚本菜单在编辑器中正确显示:
但是当我点击菜单时它有这个TypeLoadException。 'Util'类型其实在'UnityVS.x3dgame.CSharp.csproj'项目中,也是库项目
TypeLoadException: Could not load type 'Util' from assembly 'EditorLibrary'.
Scene2DBundleTool.GenerateSceneEffectLuaEditor ()
我不知道如何解决这个问题。
这里有更多信息: 解决方案结构:
EditorLibrary 引用:
需要帮助。
您收到此错误是因为您没有正确构建 dll。如果你想在你自己的dll中包含Unity的API,你必须同时添加对dll的Unity引用,这样你的dll才能使用那些API.
您必须使用基本参考资料,例如 System、System.Core 和 System.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
UI:
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
最后,确保 select 在您的 dll 项目中使用正确的 .NET 框架,然后再构建它。 .Net Framework 2.0应该没问题。
我们Unity的路径可能不同,但是一旦找到安装它的根路径,其他都是the-same。
备注:
当我说添加引用时,我的意思是添加对您正在构建的库项目的引用,而不是您的 Unity 项目。从 Visual Studio 开始,这可以通过转到 Projects ---> Add Reference... ---> 浏览...(按钮) 然后 select 适当的 dll 文件。