Unity 使用VisualStuido将C#脚本封装打包DLL使用

简介: 为了方便开发,不破坏写好工具的封装性,我们经常讲C#脚本打包成DLL使用,操作流程如下创建项目,注意选择Net Framework版本,过高Unity无法支持添加在脚本中使用的unity引用,在封装的脚本中我只使用了UnityEngine.

为了方便开发,不破坏写好工具的封装性,我们经常讲C#脚本打包成DLL使用,操作流程如下

创建项目,注意选择Net Framework版本,过高Unity无法支持
img_165966fa1399f537ac08acc1ba5beb69.png
img_df85e2707de447f9590c8d6d0ab6b95c.png
添加在脚本中使用的unity引用,在封装的脚本中我只使用了UnityEngine.dll,所以添加一个UnityEngine.dll就可以来了
img_ef8e6b2dac76c117bb87af237173c00a.png

img_f1ece5cf8ec51bb862a81b10f6145db0.png

img_932fa25bcdeecab78cb42132156bbd04.png
在引用里面出现新添加的引用
img_45ef310a57b8c201adad61eb4f32a669.png
然后添加我们要编译的脚本
img_b21ccbb96ea81724269e8a04368b8fd8.png

img_fa67dcb098a61ada628e4c3e8dc47f68.png
删除多余初始类
img_abea835bc3fbb48fb7fa07a2c1c0b5b9.png
右键启动项Debuger选择属性
img_14482b7322da4a035f5b213f5f2d32c8.png
选择生成里面的XML文档文件,这样打包出来的dll里面的注释也会显示,如果有自定义Conditional属性,例如:Unity Debug输出到屏幕并保存到本地中用到的编译条件[Conditional("EnableLog")],在条件编译符号里面添加对应的编译条件
img_4a70d4c9544866680259177b8621c556.png
右键解决方案选择重新生成解决方案
img_813b7f0f3843247f5ef638949ecc587a.png
右键选择在资源管理器中打开文件夹
img_fc2a5b7826518718e7399edfe50a50a8.png
在打开文件夹中的bin中的debug文件夹中会找到生成的dll和对应的XML文件
img_f2c166d61af19e48d3dce50f93dc1c02.png
然后把对应的dll和xml粘贴到Unity中的Plugins文件夹中就大功告成
img_7db7fe1a16976ee5bf0b2787b88d54ba.png

img_6f71221fb7769ac72b08755f97efda70.png
相关文章
|
10天前
|
存储 算法 API
Unity打包AB包
在 Unity 中,AssetBundle(AB 包)用于存储和管理游戏资源,支持动态加载。开发者需为资源标记 AssetBundle 名称,Unity 会自动处理依赖关系并进行序列化。资源被打包成二进制格式,并可选择压缩算法(如 LZMA 或 LZ4)。通过 BuildPipeline API 可控制打包过程,包括设置目标平台(如 WebGL、PC)。示例代码展示了如何使用 BuildPipeline.BuildAssetBundles 方法打包 AB 包并输出到 StreamingAssets 文件夹中。
|
10天前
|
缓存 图形学
Unity C#for和foreach效率比较
该代码对比了三种遍历 `List<int>` 的方式的性能:使用缓存 `Count` 的 `for` 循环、每次访问 `list.Count` 的 `for` 循环以及 `foreach` 循环。通过 `Stopwatch` 测量每次遍历 300 万个元素所花费的时间,并输出结果。测试可在 Unity 环境中运行,按下空格键触发。结果显示,缓存 `Count` 的 `for` 循环性能最优,`foreach` 次之,而每次都访问 `list.Count` 的 `for` 循环最慢。
|
3月前
|
安全 Java C#
Unreal Engine C# 脚本编写浅谈
本文介绍了在 Unreal Engine 中使用 C# 编写脚本的方法,涵盖环境搭建、基础概念、常见问题及代码案例。从安装插件到处理输入事件和加载蓝图,详细讲解了如何在 Unreal Engine 中高效利用 C# 进行开发。
70 3
|
3月前
|
设计模式 C# 图形学
Unity 游戏引擎 C# 编程:一分钟浅谈
本文介绍了在 Unity 游戏开发中使用 C# 的基础知识和常见问题。从 `MonoBehavior` 类的基础用法,到变量和属性的管理,再到空引用异常、资源管理和性能优化等常见问题的解决方法。文章还探讨了单例模式、事件系统和数据持久化等高级话题,旨在帮助开发者避免常见错误,提升游戏开发效率。
114 4
|
4月前
|
C#
Delphi可不可以制作出像c#那样的dll类库?
在Delphi中,创建DLL项目(如dll.dpr)并定义一个类TMyCls后,在另一个项目(如test.dpr)中可以引入此DLL并直接实例化和调用类的方法。然而,Delphi目前主要支持两种DLL形式:动态链接库(需显式声明exports,仅支持函数调用)和ActiveX DLL(需定义IDL接口)。这两种方式都较为繁琐。相比之下,C# 的DLL类库更为便捷,编写并编译后即可在其他项目中直接使用。
|
6月前
|
图形学 C# 开发者
全面掌握Unity游戏开发核心技术:C#脚本编程从入门到精通——详解生命周期方法、事件处理与面向对象设计,助你打造高效稳定的互动娱乐体验
【8月更文挑战第31天】Unity 是一款强大的游戏开发平台,支持多种编程语言,其中 C# 最为常用。本文介绍 C# 在 Unity 中的应用,涵盖脚本生命周期、常用函数、事件处理及面向对象编程等核心概念。通过具体示例,展示如何编写有效的 C# 脚本,包括 Start、Update 和 LateUpdate 等生命周期方法,以及碰撞检测和类继承等高级技巧,帮助开发者掌握 Unity 脚本编程基础,提升游戏开发效率。
196 0
|
6月前
|
C#
C# WPF 将第三方DLL嵌入 exe
C# WPF 将第三方DLL嵌入 exe
128 0
|
6月前
|
图形学 数据安全/隐私保护 iOS开发
Unity与IOS⭐Xcode打包,上架TestFlight的完整教程
Unity与IOS⭐Xcode打包,上架TestFlight的完整教程
|
6月前
|
C# 图形学 数据安全/隐私保护
Unity数据加密☀️ 二、使用Rider将C#代码生成DLL文件
Unity数据加密☀️ 二、使用Rider将C#代码生成DLL文件
|
3月前
|
C# 开发者
C# 一分钟浅谈:Code Contracts 与契约编程
【10月更文挑战第26天】本文介绍了 C# 中的 Code Contracts,这是一个强大的工具,用于通过契约编程增强代码的健壮性和可维护性。文章从基本概念入手,详细讲解了前置条件、后置条件和对象不变量的使用方法,并通过具体代码示例进行了说明。同时,文章还探讨了常见的问题和易错点,如忘记启用静态检查、过度依赖契约和性能影响,并提供了相应的解决建议。希望读者能通过本文更好地理解和应用 Code Contracts。
60 3