zoukankan      html  css  js  c++  java
  • VisualStuido中将C#脚本封装打包DLL并调用

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

     首先了解下使用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 }

    打印结果:

    OK,到这就这样愉快的结束了!

    欢迎指正!

  • 相关阅读:
    找工作最近的一些收获
    nginx的开源项目
    找工作要看的
    各种排序算法的C实现
    解析递归程序和非递归程序
    Python在centos下的安装
    centos -bash-4.1$ 不显示用户名路径
    python easy_install centos 下安装过程和原理解析
    网络基础学习:
    MATLAB常用数据类型的转换
  • 原文地址:https://www.cnblogs.com/answer-yj/p/10979019.html
Copyright © 2011-2022 走看看