【Unity】如何使用程序集Assembly Definition

本文详细描述了如何在Unity中新建和配置AssemblyDefinition,实现代码库的创建、命名空间设置、以及不同程序集间的调用规则,有助于优化项目结构和代码复用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是Assembly Definition

简单来说,程序集是一个C#代码库,包含编译后的类和结构体,并定义了对其他程序集的引用。
Unity有4个预定义程序集:
在这里插入图片描述
那如果我们自己想要使用程序集,那该如何使用呢?

1.先在工程里新建两个文件夹,一个命名为“myCode”,一个命名为“Public”

在这里插入图片描述

2.在myCode文件夹下右键创建Assembly Definition,并把它命名为“myCode”

在这里插入图片描述

3.然后工程里会多出一个这个文件

在这里插入图片描述

4.选中myCode文件,会显示详情

在这里插入图片描述

5.程序集 Inspector 面板详解

  • Name:程序集的名称 , 程序集名称在整个项目中必须唯一
  • General
    ① Allow ‘unsafe’ code:如果程序集中使用了Unsafe关键字,需要勾选此选项,否则报错
    ② Auto Referenced:指定是否所有预定义程序集都应引用此程序集。
    ③ No Engine References:启用此属性后,Unity在编译程序集时不会向UnityEditor或UnityEngine添加引用。
    ④ Override References:启用后以手动方式确认引用哪些程序集
    ⑤ Root Namespace:当前程序集的默认命名空间,填写后我们使用unity添加新代码文件,会自动添加命名空间。
  • Define Constraints:指定必须定义的编译器#define指令,才能编译或引用程序集。
  • Assembly Definition References:指定对使用 Assembly Defienitions 创建的其他程序集的引用。
  • Platforms:设置发布平台

6.同理,在Puclic文件夹下也创建一个程序集

在这里插入图片描述

7.在myCode文件下创建一个名为“Tool.cs”的脚本

注意:在myCode下创建的所有脚本都归于myCode,包括子文件夹
在这里插入图片描述

8.写一个简单的GetIndex方法

在这里插入图片描述

9.在Public文件下创建一个名为“Test”的脚本,然后打开Test.cs脚本

在这里插入图片描述

10.在Test.cs里想要调用刚刚的GetIndex方法,却发现不存在。

在这里插入图片描述

11.选中Public程序集,然后把myCode程序集拖入,然后Apply

程序集之间的调用是单向的,此时Public程序集下的代码就可以调用myCode程序集里的脚本了,但是反过来是不可以的。
在这里插入图片描述

12.报错消失

在这里插入图片描述

合理利用Assembly Definition来规划工程的代码结构

13.除了以上用法,我们还可以把myCode程序集单独拿出来,让其他工程使用。在Library\ScriptAssemblies中可以找到myCode.dll。直接丢到B工程,然后B工程就可以直接使用。在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值