【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.mfbz.cn/a/369423.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

新书速览|Kubernetes从入门到DevOps企业应用实战

从0到1,从零开始全面精通Kubernetes,助力企业DevOps应用实践 本书内容 《Kubernetes从入门到DevOps企业应用实战》以实战为主,内容涵盖容器技术、Kubernetes核心资源以及基于Kubernetes的企业级实践。从容器基础知识开始,由浅入深…

C#中使用OpenCvSharp4绘制直线、矩形、圆、文本

C#中使用OpenCvSharp4绘制直线、矩形、圆、文本 继之前的Python中使用Opencv-python库绘制直线、矩形、圆、文本和VC中使用OpenCV绘制直线、矩形、圆和文字,将之前的Python和C示例代码翻译成C#语言,很简单,还是借用OpenCvSharp4库中的Line、…

基于腾讯云服务器搭建幻兽帕鲁服务器保姆级教程

随着网络游戏的普及,越来越多的玩家希望能够拥有自己的游戏服务器,以便能够自由地玩耍。而腾讯云服务器作为一个优秀的云计算平台,为玩家们提供了一个便捷、稳定、安全的游戏服务器解决方案。本文将为大家介绍如何基于腾讯云服务器搭建幻兽帕…

Fink CDC数据同步(三)Flink集成Hive

1 目的 持久化元数据 Flink利用Hive的MetaStore作为持久化的Catalog,我们可通过HiveCatalog将不同会话中的 Flink元数据存储到Hive Metastore 中。 利用 Flink 来读写 Hive 的表 Flink打通了与Hive的集成,如同使用SparkSQL或者Impala操作Hive中的数据…

从MySQL到TiDB:兼容性全解析

MySQL 在高并发和大数据量场景下,单个实例的扩展性有限。而 TiDB 作为一款分布式NewSQL数据库,设计之初就支持水平扩展(Scale-Out),通过增加节点来线性提升处理能力和存储容量,能够很好地应对大规模数据和高…

AS-V1000 视频监控平台产品介绍:客户端功能介绍(一)

目 录 一、引言 1.1 AS-V1000视频监控平台介绍 1.2平台服务器配置说明 二、软件概述 2.1 客户端软件用途 2.2 客户端功能 三、客户端功能说明 3.1 登陆和主界面 3.1.1登陆界面 3.1.2登陆操作 3.1.3主界面 3.1.4资源树 3.2 视频预览 3.2.1视频预览界面 3.2.…

python 基础知识点(蓝桥杯python科目个人复习计划33)

今日复习内容:以做题为主 例题1:小蓝的漆房 题目描述: 小蓝是一位有名的漆匠,他的朋友小桥有一个漆房,里面有一条长长的走廊,走廊两旁有许多相邻的房子,每间房子最初被涂上了一种颜色。 小桥…

Lambda表达式(匿名函数)

C11中引入了lambda表达式,定义匿名的内联函数。 我们可以直接原地定义函数而不用再跑到外面去定义函数跳来跳去。 同时在stl的排序上也有作用。 [capture] (parameters) mutable ->return-type {statement}下面逐一介绍各个参数的含义. [capture] : 捕获&#…

喜讯!亚信安慧斩获第六届金猿奖两大奖项!

近日,第六届金猿奖颁奖典礼在上海 “第六届金猿季&魔方论坛——大数据产业发展论坛”上隆重举行,湖南亚信安慧科技有限公司(简称“亚信安慧”)凭借AntDB数据库获评“2023大数据产业年度创新技术突破” 、“2023大数据产业年度…

解锁MyBatis Plus的强大功能:学习高级操作与DML技巧!

MyBatisPlus 1,DML编程控制1.1 id生成策略控制知识点1:TableId1.1.1 环境构建1.1.2 代码演示AUTO策略步骤1:设置生成策略为AUTO步骤3:运行新增方法 INPUT策略步骤1:设置生成策略为INPUT步骤2:添加数据手动设置ID步骤3:运行新增方法 ASSIGN_ID策略步骤1:设…

【数据结构 09】哈希

哈希算法:哈希也叫散列、映射,将任意长度的输入通过散列运算转化为固定长度的输出,该输出就是哈希值(散列值)。 哈希映射是一种压缩映射,通常情况下,散列值的空间远小于输入值的空间。 哈希运…

thinkadmin的form.html表单例子

<style>textarea {width: 100%;height: 200px;padding: 10px;border: 1px solid #ccc

JUC并发工具类的应用场景详解

目录 常用并发同步工具类的真实应用场景 1. ReentrantLock 1.1 常用API 1.2 ReentrantLock使用 独占锁&#xff1a;模拟抢票场景 公平锁和非公平锁 可重入锁 结合Condition实现生产者消费者模式 1.3 应用场景总结 2. Semaphore 2.1 常用API 2.2 Semaphore使…

VMware无法检测到插入的USB设备,虚拟机插拔USB无反应

原本正常使用的VMware虚拟机&#xff0c;在进行了重装软件后&#xff0c;发现虚拟机插拔USB设备都无法检测到&#xff0c;没有任何的反应和提示。 通过一系列的操作发现&#xff0c;在新安装了VMware workstation 软件后&#xff0c;存在一定的概率性会发生VMware虚拟机无法自…

在windows下安装docker部署环境运行项目----docker-compose.yml

前言 小编我将用CSDN记录软件开发求学之路上亲身所得与所学的心得与知识&#xff0c;有兴趣的小伙伴可以关注一下&#xff01; 也许一个人独行&#xff0c;可以走的很快&#xff0c;但是一群人结伴而行&#xff0c;才能走的更远&#xff01;让我们在成长的道路上互相学习&…

Android 13.0 原生SystemUI下拉通知栏每条通知默认展开

1.前言 在13.0的系统rom原生开发中,在在对SystemUI下拉通知栏做定制的时候,在下拉状态栏的时候,通知栏中最后一条通知默认是收缩的 点击按钮 就会展开 原生系统systemui就是如此,为了更美观 所以要求最后一条通知也默认展开,显得更美观 最终效果图: 2.原生SystemUI下拉通…

09. BI - 数据可视化,如何进行基本图形绘制

本文为 「茶桁的 AI 秘籍 - BI 篇 第 09 篇」 文章目录 EDA 作用可视化视图Python 进行可视化subplot Hi&#xff0c;你好。我是茶桁。 今天想给大家讲的是关于数据的可视化。在工作中很多时候我们不光要计算结果&#xff0c;还要把结果呈现出来&#xff0c;最好是一种图形化的…

斗地主登录界面(JAVA图形化界面)设置

1.实现代码 import CodeUtil.CodeUtil; import domain.User;import javax.swing.*; import java.awt.*; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.util.ArrayList;public class LoginGame extends JFrame implements MouseListen…

png图片怎么转换成jpg?四个方法搞定不求人

在数字图像处理领域&#xff0c;PNG和JPG是两种常见的图片格式。PNG以无损压缩而闻名&#xff0c;适用于保存透明背景和保留图像细节&#xff1b;而JPG以有损压缩而著称&#xff0c;适用于在较小的文件大小下保持照片质量。有时候&#xff0c;您可能需要将PNG格式的图片转换为J…

Win10系统搭建个人hMailServer邮件服务结合内网穿透远程发邮件

文章目录 前言1. 安装hMailServer2. 设置hMailServer3. 客户端安装添加账号4. 测试发送邮件5. 安装cpolar6. 创建公网地址7. 测试远程发送邮件8. 固定连接公网地址9. 测试固定远程地址发送邮件 前言 hMailServer 是一个邮件服务器,通过它我们可以搭建自己的邮件服务,通过cpola…