ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Unity DLL (Dynamic Link Library)---动态链接库

2022-02-06 19:03:34  阅读:165  来源: 互联网

标签:文件 int Dynamic System Library DLL Unity using


 首先了解下使用DLL的优势,程序运行时不用加载所有代码,只有运行到引用时,才从DLL库中取出。并且使用DLL文件还可以减小程序体积,封装好的DLL文件,由于函数已经封装到DLL文件中,防止意外变更。所以编译器不会对我们的 DLL 进行编译,而是直接运  行,程序执行需要时调用的,许多搞插件开发的,都是将代码封装为 DLL ,并加密。这样既提高了运行效率,也保证了代码的基本安全性。

创建DLL

1.创建库

以 为例

打开 Visual Studio 2015(我用的vs2015),新建项目:文件→→新建→→项目,选择 Visual C# 类库 (.NET Framework) 

我这里将命名空间改为MyDLL。随意!

2.下面添加代码:

添加代码注意:

a.所有需要通过 dll 调用的函数,访问修饰符都需要设为公有即public static

b.若想要调用 Unity的API ,就需要导入 Unity 中的2个 DLL 到库中

 导入UnityAPI所需两个DLL:

1.先找到这两个DLL文件:

添加引用

方式1:

方式2:

右键引用

点击浏览,根据刚才找到库文件的路径

添加即可。这样程序才能访问到我们DLL库中的函数了。

添加测试函数

复制代码
 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading;
 6 using UnityEditor;
 7 using UnityEngine;
 8 namespace MyDLL
 9 {
10     public class Class1
11     {
12         /// <summary>
13         /// 加法运算
14         /// </summary>
15         /// <param name="a"></param>
16         /// <param name="b"></param>
17         /// <returns></returns>
18         public static int Addition(int a,int b)  {
19             return a + b;
20         }
21         /// <summary>
22         /// 乘法运算
23         /// </summary>
24         /// <param name="a"></param>
25         /// <param name="b"></param>
26         /// <returns></returns>
27         public static int Multiplication(int a, int b)
28         {
29             return a * b;
30         }
31         /// <summary>
32         /// 减法运算
33         /// </summary>
34         /// <param name="a"></param>
35         /// <param name="b"></param>
36         /// <returns></returns>
37         public static int Subtraction(int a, int b)
38         {
39             return a - b;
40         }
41 
42     }
43 }
复制代码

3.配置生成解决方案

在解决方案中,右键项目选择属性,打开设计界面--应用程序,Unity需要输出 3.5版本及以下版本的dll

 

 保存-》右键解决方案-》生成解决方案,或者

4.找到生成的DLL

生成后,找到我们的DLL文件,文件在我们库项目中的 bin/Debug 目录下

 我的文件:

5.调用创建的DLL文件

 将找到的自己创建的DLL文件放入Unity的Plugins文件夹下(这里要注意的是Unity 2017.3版本后,库文件需要放在 Plugins文件夹下,才可以正常启用,在这里我是vs2015,无所谓)

复制代码
 1 using System.Collections;
 2 using System.Collections.Generic;
 3 using UnityEngine;
 4 
 5 public class DLLtext : MonoBehaviour {
 6 
 7     void Start () {
 8         Debug.Log(MyDLL.Class1.Addition(1, 2));
 9         Debug.Log(MyDLL.Class1.Multiplication(3, 2));
10         Debug.Log(MyDLL.Class1.Subtraction(4, 2));
11     }
12 }
复制代码

打印结果:

标签:文件,int,Dynamic,System,Library,DLL,Unity,using
来源: https://www.cnblogs.com/guangzhiruijie/p/15866066.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有