什么是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程序集里的脚本了,但是反过来是不可以的。