当前位置: 首页 > article >正文

【Unity知识点详解】自定义程序集

        今天来介绍一下Unity中的自定义程序集。在项目开发中我们经常接触到第三方插件的程序集,如DOTween、Newtonsoft.Json等。

        使用自定义程序集有这么几个好处:

  1. 方便代码的的复用。当某一功能模块需要在多个项目中重复使用时,可以将代码编译成程序集,将程序集放入工程中即可。在代码维护时,也只需重新编译程序集替换即可。我们常用到的第三方插件就是如此。
  2. 在大型项目中使用程序集可以提高编译效率,在代码编译时Unity会将工程中的所有代码编译到 Assembly-CSharp.dll 程序集中去。当项目庞大代码量多的时候,代码的每一次修改都会消耗大量的时间进行编译,使用程序集则可以减少编译时间。
  3. 使用程序集也可以更好的模块化组织和管理代码。
  4. 使用程序集也可以避免源代码的暴露。

自定义程序集的创建

        接下来介绍一下如何创建自定义程序集。

        首先创建一个文件夹,用于存放程序集中所涉及到的代码文件。然后在文件夹下右键,在Create->Assembly Definition中创建程序集定义文件。如图MyAssembly.asmdef会包含目录下所有代码文件,以及包括所有子目录中的代码文件。这里建议程序集名称和文件夹名称保持一直,方便理解和管理。

       

        创建完成MyAssembly.asmdef后Unity会在工程Library\ScriptAssemblies目录中自动生成一个同名的MyAssembly.dll程序集文件,其中就包含了MyAssembly目录下所有的代码。当其他工程需要使用同样的功能模块时,则可以将程序集放入Plugins目录即可。使用方式和其他第三方插件的程序集一样。

自定义程序集的参数设置

        下面来介绍一下MyAssembly.asmdef程序集定义文件中的一些参数。

Name:程序集名称

Auto Referenced:指定预定义的程序集是否应引用此项目程序集。禁用 Auto Reference 选项后,Unity 不会在编译过程中自动引用该程序集。这不会影响 Unity 是否将文件包含在构建中。

        Assembly Definition References是用于添加当前程序集中所需要用到的其他程序集。如图,当前程序集需要使用到Addressables功能,我们则需要将Unity.Addressables程序集进行引用添加。

        更多参数介绍可以查看官方文档,链接在文章最后。

DLLSwitcher介绍

        最后给大家介绍一个很好用的插件,当我们项目中即有脚本又有程序集的时候,在添加组件的时候就涉及到是要添加脚本还是程序集的问题,DLLSwitcher则可以帮助你进行转换。

        首先我们可以在Unity Asset Store进行下载,下载之后进行一个导入。

        在菜单栏Window->DllSwitcher打开DLLSwitcher窗口,在Dll File项中选择程序集文件。然后就可以进行引用转换了。

参考文档连接:

程序集定义:https://docs.unity3d.com/cn/2022.2/Manual/ScriptCompilationAssemblyDefinitionFiles.html

DLLSwitcher插件:https://assetstore.unity.com/packages/tools/utilities/dllswitcher-40370


http://www.kler.cn/a/227896.html

相关文章:

  • 我的求职面经:(1)C++里指针和数组的区别
  • maven、npm、pip、yum官方镜像修改文档
  • Linux工具使用
  • AI在自动化测试中的伦理挑战
  • 【llm对话系统】大模型 RAG 之回答生成:融合检索信息,生成精准答案
  • 【机器学习】自定义数据集 使用pytorch框架实现逻辑回归并保存模型,然后保存模型后再加载模型进行预测
  • 大数据学习之Redis,十大数据类型的具体应用(四)
  • 判断和循环 - 循环语句 - for循环格式和练习
  • EtherCAT转ModbusTCP网关
  • 雨云游戏云VPS服务器用Linux搭建MCSM面板和Minecraft Mohist 1.20.2服务器教程,我的世界MOD和插件服开服教程。
  • 行为型设计模式—访问者模式
  • 自学Java的第十九天
  • 【数据分享】1929-2023年全球站点的逐日最低气温数据(Shp\Excel\免费获取)
  • C# CAD界面-自定义工具栏(三)
  • 树莓派5一键安装C++版本OpenCV
  • 【JavaEE进阶】 图书管理系统开发日记——伍
  • Flink与Redis集成:自定义连接器实现维表创建与数据汇入
  • 牛客网-------------------------长方体
  • Oracle出现超出打开游标最大数的解决方法
  • 中科大计网学习记录笔记(五):协议层次和服务模型
  • Redis的过期键的删除策略
  • Linux权限【超详细】
  • ubuntu22.04 VMware17.5
  • C++ STL库详解:容器适配器stack和queue的结构及功能
  • MySQL 基础
  • 实习记录——第十天