Unity C#代码封装dll文件完美教程(Chinar-开发者必经之路)

简介: Unity C#代码封装dll文件完美教程(Chinar-开发者必经之路) 将脚本封装为DLL库,本文提供全流程,中文翻译。 助力快速完成 Unity C#脚本文件封装为 DLL 库文件 DLL (Dynamic Link Library) —— 中文:动态链接库

脚本封装/创建DLL库


本文提供全图文流程,中文翻译。

Chinar 坚持将简单的生活方式,带给世人!

(拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例)

Chinar —— 心分享、心创新!

助力快速完成 Unity C#脚本文件封装为 DLL 库文件

给新手节省宝贵的时间,避免采坑!


Chinar 教程效果:
9_


全文高清图片,点击即可放大观看 (很多人竟然不知道)


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版本
举个例子
1_


3

Add code —— 添加代码



注意1: 所有我们需要通过 dll 调用的函数,都需要设为 公有(public static)

注意2: 如果想要调用 Unity的API ,就需要导入 Unity 中的2个 DLL 到库中

先找到这两个 必要的 dll文件
5_Unity_DLL_

然后在我们VS库项目中,完成对它们的引用添加

6_VS_unity_DLL_

这样程序才能访问到我们 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

完成设置后,保存。右键解决方案→→生成解决方案

举个例子
2_


5

Find dll —— 找到我们生成的dll文件



生成后,找到我们的 dll 文件

文件在我们库项目中的 bin/Debug 目录下
4_dll_
另外生成项目的输出界面也会列出路径位置
举个例子
3_dll_


6

Import Unity —— 导入到Unity



dll 文件,导入到 Unity 中即可使用

注意:Unity 2017.3版本后,库文件需要放在 Plugins文件夹下,才可以正常启用

没有 Plugins 文件夹,就自己新建一个

然后,我们写一个脚本 TestDll ,测试调用我们的 dll 中的函数,打印输出
举个例子
1. 导入到 Unity 项目中
7_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"));
    }
}

输出结果:
9_
至此:dll的创建、测试教程结束


其他

May Be —— 搞开发,总有一天要做的事!


拥有自己的服务器,无需再找攻略!

Chinar 提供一站式教程,闭眼式创建!

为新手节省宝贵时间,避免采坑!




服务器、建站、备案、网站配置等(服务器相关教程大全)


END

本博客为非营利性个人原创,除部分有明确署名的作品外,所刊登的所有作品的著作权均为本人所拥有,本人保留所有法定权利。违者必究

对于需要复制、转载、链接和传播博客文章或内容的,请及时和本博主进行联系,留言,Email: ichinar@icloud.com

对于经本博主明确授权和许可使用文章及内容的,使用时请注明文章或内容出处并注明网址

相关文章
|
20天前
|
开发框架 .NET API
RESTful API 设计与实现:C# 开发者的一分钟入门
【10月更文挑战第5天】本文从零开始,介绍了如何使用 C# 和 ASP.NET Core 设计并实现一个简单的 RESTful API。首先解释了 RESTful API 的概念及其核心原则,然后详细说明了设计 RESTful API 的关键步骤,包括资源识别、URI 设计、HTTP 方法选择、状态码使用和错误处理。最后,通过一个用户管理 API 的示例,演示了如何创建项目、定义模型、实现控制器及运行测试,帮助读者掌握 RESTful API 的开发技巧。
42 7
|
23天前
|
C# 数据安全/隐私保护 计算机视觉
C#开发者的新选择:使用ImageSharp进行图像处理
C#开发者的新选择:使用ImageSharp进行图像处理
62 8
|
18天前
|
开发框架 NoSQL MongoDB
C#/.NET/.NET Core开发实战教程集合
C#/.NET/.NET Core开发实战教程集合
|
23天前
|
存储 C#
【C#】大批量判断文件是否存在的两种方法效率对比
【C#】大批量判断文件是否存在的两种方法效率对比
27 1
|
2月前
|
编译器 C# Android开发
Uno Platform 是一个用于构建跨平台应用程序的强大框架,它允许开发者使用 C# 和 XAML 来创建适用于多个平台的应用
Uno Platform 是一个用于构建跨平台应用程序的强大框架,它允许开发者使用 C# 和 XAML 来创建适用于多个平台的应用
156 8
|
27天前
|
XML 存储 缓存
C#使用XML文件的详解及示例
C#使用XML文件的详解及示例
56 0
|
2月前
|
设计模式 C# 开发者
C#设计模式入门实战教程
C#设计模式入门实战教程
|
3月前
|
图形学 开发者 存储
超越基础教程:深度拆解Unity地形编辑器的每一个隐藏角落,让你的游戏世界既浩瀚无垠又细节满满——从新手到高手的全面技巧升级秘籍
【8月更文挑战第31天】Unity地形编辑器是游戏开发中的重要工具,可快速创建复杂多变的游戏环境。本文通过比较不同地形编辑技术,详细介绍如何利用其功能构建广阔且精细的游戏世界,并提供具体示例代码,展示从基础地形绘制到植被与纹理添加的全过程。通过学习这些技巧,开发者能显著提升游戏画面质量和玩家体验。
115 3
|
3月前
|
图形学 数据可视化 开发者
超实用Unity Shader Graph教程:从零开始打造令人惊叹的游戏视觉特效,让你的作品瞬间高大上,附带示例代码与详细步骤解析!
【8月更文挑战第31天】Unity Shader Graph 是 Unity 引擎中的强大工具,通过可视化编程帮助开发者轻松创建复杂且炫酷的视觉效果。本文将指导你使用 Shader Graph 实现三种效果:彩虹色渐变着色器、动态光效和水波纹效果。首先确保安装最新版 Unity 并启用 Shader Graph。创建新材质和着色器图谱后,利用节点库中的预定义节点,在编辑区连接节点定义着色器行为。
210 0
|
3月前
|
开发者 图形学 Java
揭秘Unity物理引擎核心技术:从刚体动力学到关节连接,全方位教你如何在虚拟世界中重现真实物理现象——含实战代码示例与详细解析
【8月更文挑战第31天】Unity物理引擎对于游戏开发至关重要,它能够模拟真实的物理效果,如刚体运动、碰撞检测及关节连接等。通过Rigidbody和Collider组件,开发者可以轻松实现物体间的互动与碰撞。本文通过具体代码示例介绍了如何使用Unity物理引擎实现物体运动、施加力、使用关节连接以及模拟弹簧效果等功能,帮助开发者提升游戏的真实感与沉浸感。
68 1