在Unity中引用Dll的两种方法
来源:互联网 发布:linux 删除别名 编辑:程序博客网 时间:2024/06/10 00:25
Unity3D 能够很方便的集成一些外部插件,以便调用现有的动态链接库。下面会介绍Unity中如何集成Dll的两种方法。
1. 标准引用
这里所使用的语言是C#。
1.1
1.2
以上是一个简单的测试代码。
1.3
如果选择的是4.0版会出现
Internal compiler error. See the console log for more information. output was:
Unhandled Exception: System.TypeLoadException: Could not load type 'System.Runtime.Versioning.
错误。
1.4
1.5
1.6
1.7
2. Unity的方案
官网指出,Unity已经广泛支持基于C,C++或者Objective-C语言的插件。原文说明http://docs.unity3d.com/Documentation/Manual/Plugins.html 以下示例可从官网获得,下载示例代码http://docs.unity3d.com/Documentation/Images/manual/SimplestPluginExample.zip
2.1
2.2
注意:在[DllImport ("ASimplePlugi")] 参数中不要加入 .dll 后缀。
2.3
在 Unity 项目中调试 DLL
许多 Unity 开发人员将代码组件编写为外部 Dll,以便可轻松地与其他项目共享开发的功能。Visual Studio Tools for Unity 可以轻松无缝地调试这些 DLL 中的代码以及 Unity 项目中的其他代码。
Visual Studio Tools for Unity 此时仅支持托管 DLL。它不支持调试本机代码 DLL,如使用 C++ 编写的代码。
请注意,此处所述的方案假定你具有源代码(即你正在开发或重用自己的第一方代码)或具有第三方库的源代码,并计划在 Unity 项目中将其作为 DLL 进行部署。此方案未描述不具备源代码时的 DLL 调试。
调试 Unity 项目中使用的托管 DLL 项目
将现有的 DLL 项目添加到由 Visual Studio Tools for Unity 生成的 Visual Studio 解决方案中。不太常见的情况是:你可能会启动一个新的托管 DLL 项目,以便在 Unity 项目中包含代码组件;如果是这种情况,则可将新的托管 DLL 项目添加到 Visual Studio 解决方案。有关向解决方案添加新项目或现有项目的详细信息,请参阅如何:向解决方案添加项目。
在任一情况下,Visual Studio Tools for Unity 均将维护项目引用,即使不得不再次重新生成项目和解决方案文件,所以你只需要执行一次这些步骤。
引用 DLL 项目中正确的 Unity 框架配置文件。在 Visual Studio 的 DLL 项目属性中,将“目标框架”属性设置为正在使用的 Unity 框架版本。这是与你的项目作为目标的 API 兼容性相匹配的 Unity 基类库,如 Unity 完整、微型或 Web 基类库。这可以防止你的 DLL 调用存在于其他框架或兼容性级别中而不存在于你正在使用的 Unity 框架版本中的框架方法。
将 DLL 复制到 Unity 项目的资产文件夹。在 Unity 中,资产是与 Unity 应用一起打包和部署的文件,所以可以在运行时加载它们。由于 DLL 于运行时链接,因而必须将 DLL 作为资产部署。若要部署为资产,Unity 编辑器需要将 DLL 放置在 Unity 项目的“资产”文件夹中。可以采用两种方法执行此操作:
修改 DLL 项目的生成设置,以包含将输出 DLL 和 PDB 文件从输出文件夹复制到 Unity 项目“资产”文件夹的生成后任务。
修改 DLL 项目的生成设置,以将其输出文件夹设置为 Unity 项目的“资产”文件夹。DLL 和 PDB 文件都将放置在“资产”文件夹中。
需要调试 PDB 文件(因为它们包含 DLL 的调试符号),并将 DLL 代码映射到其源代码形式。Visual Studio Tools for Unity 将使用来自 DLL 和 PDB 的信息来创建一个 DLL.MDB 文件,此文件是 Unity 脚本引擎所使用的调试符号格式。
调试代码。现在可以同时调试 DLL 源代码以及 Unity 项目的源代码,并使用所有熟悉的调试功能,如断点和单步调试代码。
- 在Unity中引用Dll的两种方法
- 在Unity中引用Dll的两种方法
- 在Unity中引用Dll的两种方法
- 在Unity中引用Dll的两种方法
- 介绍两种在c++中调用dll的方法
- .net在同一个项目中要引用两种不同版本的dll(dll hell)的解决办法
- DLL两种常用的创建和引用方法
- 在DLL中资源切换的两中方法
- C++中引用DLL的两种方式
- unity引用dll文件方法
- unity引用dll文件方法
- Unity教程之-在Unity3d中加载外部图片的两种方法
- Unity教程之-在Unity3d中加载外部图片的两种方法
- 在VO中引用Controller层中的Session State的两种方法
- 在VC 引用DLL文件的方法
- Dll的编写 在unity中加载
- vbs脚本中引用dll的方法
- MQ4语言中dll的引用方法
- ASP.NET获取微信客户端上传的图片
- 数据结构的学习(1)(c语言)
- 标准C++复数运算类详解及使用例程
- 51nod--1212 最小生成树
- hdu 5247 找连续数
- 在Unity中引用Dll的两种方法
- 卷积神经网络改进想法初探(上篇)
- typename 与 typedef的区别与应用
- 各种排序算法的稳定性和时间复杂度小结
- 线性表 及Java实现 顺序表、链表、栈、队列
- JQuery选择器部分
- 套接字编程简介
- ZOJ3844——Easy Task 模拟
- 小猫统计制作教师资格证批量打印过程中,长字符字段被截取并丢失部分字符问题的解决