Unity C#代码封装dll文件完美教程(Chinar-开发者必经之路)
脚本封装/创建DLL库
本文提供全图文流程,中文翻译。
Chinar 坚持将简单的生活方式,带给世人!
(拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例)
Chinar —— 心分享、心创新!
助力快速完成 Unity C#脚本文件封装为 DLL 库文件
给新手节省宝贵的时间,避免采坑!
Chinar 教程效果:
全文高清图片,点击即可放大观看 (很多人竟然不知道)
1
DLL Description —— DLL文件说明
DLL (Dynamic Link Library) —— 中文:动态链接库
我们 Windows 系统中就有着海量的 dll文件
当多个程序同时使用一个函数库时, DLL 即减少在磁盘和物理内存中加载的代码的重复量,同时也提高了响应速度
好处:
1. 程序在运行之初无需加载所有代码,只有在程序执行到某个函数调用时,才从 DLL 中取出
2. 使用 DLL 文件还可以减小程序的体积
** 3. 封装好的 DLL 文件,由于函数已经封装到 DLL 文件中,不会变更。
所以编辑器不会对我们的 DLL 进行编译,而是直接运行,程序执行需要时调用的**
许多大神,或是插件开发者,都是将代码封装为 DLL ,并加密。
这样既提高了运行效率,也保证了代码的基本安全性,不被他人看到
而本教程,就是教大家讲自己写的通用代码/需要的代码,封装为 DLL 文件,导入项目即可调用使用
下面就跟着 Chinar 来完成操作吧!
2
Create Library —— 创建库
以 Visual Studio 2017 为例
打开 VS 2017 新建一个项目:文件→→新建→→项目
选择 Visual C# 类库 (.NET Framework)
框架版本不用在意,我们后边再改
因为 Unity 当前只支持最高 3.5版本
3
Add code —— 添加代码
注意1: 所有我们需要通过 dll 调用的函数,都需要设为 公有(public static)
注意2: 如果想要调用 Unity的API ,就需要导入 Unity 中的2个 DLL 到库中
先找到这两个 必要的 dll文件
然后在我们VS库项目中,完成对它们的引用添加
这样程序才能访问到我们 dll 库中的函数
用于测试:我们在脚本中添加一个函数
(可选):这里我对默认类名 class1 修改为 Chinar ,可根据自己喜好修改类名即可
最好在解决方案中完成重命名操作,不然类名改了,解决方案中并没有被修改!
using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Text; using UnityEngine; namespace ChinarLib { public class Chinar { /// <summary> /// 对两个整数相加 /// </summary> /// <param name="parameter1">参数1</param> /// <param name="parameter2">参数2</param> /// <returns>两个数之和</returns> public static int Addition(int parameter1, int parameter2) { return parameter1 + parameter2; } /// <summary> /// 字符串拼接 /// </summary> /// <param name="parameter1">参数1</param> /// <param name="parameter2">参数2</param> /// <returns>拼接后的字符串</returns> public static string Splice(string parameter1, string parameter2) { return parameter1 + parameter2; } /// <summary> /// 输出文本 —— 颜色:绿色 /// </summary> /// <param name="parameter">字符串</param> public static void Print(string parameter) { UnityEngine.Debug.Log($"<b><color=lime><size={12}>{parameter}</size></color></b>"); } } }
4
Configuration generated —— 配置生成
在解决方案中,右键项目→→属性,打开设计界面
Unity 需要输出 3.5版本,及以下版本的dll
根据需求选择,这里我选择的是:Unity 3.5 .net full Base Class Libraries
完成设置后,保存。右键解决方案→→生成解决方案
5
Find dll —— 找到我们生成的dll文件
生成后,找到我们的 dll 文件
文件在我们库项目中的 bin/Debug
目录下
另外生成项目的输出界面也会列出路径位置
6
Import Unity —— 导入到Unity
将 dll 文件,导入到 Unity 中即可使用
注意:Unity 2017.3版本后,库文件需要放在 Plugins文件夹下,才可以正常启用
没有 Plugins 文件夹,就自己新建一个
然后,我们写一个脚本 TestDll ,测试调用我们的 dll 中的函数,打印输出
1. 导入到 Unity 项目中
测试脚本
using ChinarLib; using UnityEngine; /// <summary> /// 测试dll /// </summary> public class TestDll : MonoBehaviour { /// <summary> /// 初始化函数 /// </summary> void Start() { Chinar.Print("Hello - Chinar"); print(Chinar.Addition(1, 1)); print(Chinar.Splice("字符串1", "----字符串2")); } }
输出结果:
至此:dll的创建、测试教程结束
其他
May Be —— 搞开发,总有一天要做的事!
拥有自己的服务器,无需再找攻略! Chinar 提供一站式教程,闭眼式创建! 为新手节省宝贵时间,避免采坑! |
END
本博客为非营利性个人原创,除部分有明确署名的作品外,所刊登的所有作品的著作权均为本人所拥有,本人保留所有法定权利。违者必究
对于需要复制、转载、链接和传播博客文章或内容的,请及时和本博主进行联系,留言,Email: ichinar@icloud.com
对于经本博主明确授权和许可使用文章及内容的,使用时请注明文章或内容出处并注明网址
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
函数计算 php runtime - 如何加载卸载内置扩展
在本文中,我们根据一个具体的问题的抛出以及解决的过程,来讲解php runtime 中怎么对 内置的扩展进行加载和卸载。 主目录:php runtime FAQ 问题 根据官方文档 php执行环境内置库可以知道, 函数计算环境中内置了tablestore php sdk,但是编写如下代码使用该 sdk 编写如下代码: <?php useAliyun\OTS\Consts\ColumnTypeConst; useAliyun\OTS\Consts\PrimaryKeyTypeConst; useAliyun\OTS\Consts\RowExistenceExpectationConst; useAliyun\OTS\OTSClientasOTSClient; functionhandler($event,$cont
- 下一篇
深入Spring Boot:利用Arthas排查NoSuchMethodError
前言 有时spring boot应用会遇到java.lang.NoSuchMethodError的问题,下面以具体的demo来说明怎样利用arthas来排查。 Demo: https://github.com/hengyunabc/spring-boot-inside/tree/master/demo-NoSuchMethodError 在应用的main函数里catch住异常,保证进程不退出 很多时候当应用抛出异常后,进程退出了,就比较难排查问题。可以先改下main函数,把异常catch住: public static void main(String[] args) throws IOException { try { SpringApplication.run(DemoNoSuchMeth
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8编译安装MySQL8.0.19
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Hadoop3单机部署,实现最简伪集群
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果