程序集配置

程序集配置

参考 Unity User Manual 2021.1/脚本/Unity 架构/脚本编译/程序集定义

介绍

旧的unity生成工程时会把所有cs文件放在一个工程中,2017.3版本之后你可以自定义哪些cs文件组成一个工程
好处是工程管理更明确,依赖关系更清楚,还可以针对不同的工程做不同的配置,有文件修改时编译速度也会更快

创建程序集

Project 面板->在某个文件夹中右击->Create->Assembly Definition->命名程序集文件->Inspector窗口可以更改属性
	则程序集文件所在目录和所有子目录下的cs文件将打包成一个dll,生成工程时也会单独创建一个工程
	程序集所在文件的子文件夹中如果也有程序集,则子文件夹中的代码将划分到子文件夹的程序集
	Editor 文件夹中的代码必须划分到跟 Runtime 不同的程序集中,因为 Editor 程序集在程序集配置中只勾选 Editor 平台

引用别的文件夹

如果该程序集想包含其他地方的文件夹,可在目标文件夹下建立 Assembly Definition Reference 文件,
	Inspector 窗口中关联程序集文件,比较常见的如所有的 Editor 文件夹要打包在一起,此时就可以用程序集引用

程序集配置

使用程序集文件定义的程序集,直接选中程序集文件进行配置,比如 依赖,预定义 等
平台配置
	有些代码只能在特定平台下才能编译通过,此时你必须勾选特定平台,比如 UnityEditor 相关代码只能在 Editor 平台下编译通过
	
依赖配置
	引用了别的程序集的代码,就需要在依赖中添加别的程序集进行引用
	UnityEngine 和 UnityEditor 默认自动包含,不需要再额外添加,如果不想引用可以勾选 No Engine Reference
	程序集默认被默认的程序集引用,如果不想被引用,可以取消勾选 Auto Referenced,dll插件也一样
	如果dll插件取消勾选 Auto Referenced,则可以在需要dll的程序集中勾选 Override References,然后选择该dll
	
Define Constraints
	这边添加的 XXX 符号跟代码中的#if XXX 含义是类似的,表示当 XXX 符号有定义才编译该程序集
	如果添加了多个符号AAA BBB,相当于 #if AAA && BBB ,也就是所有符号都被定义才编译该程序集
	
预定义
	1.在 PlayerSettings->OtherSettings->Scripting Define Symbols 中设置预定义
		如果是灰色不能设置,可以先把 Scripting Backend 改成 IL2CPP ,设置完再改回来 
		这边配置的是针对不同平台的预定义,但对所有编译器都生效
	2.在编译配置文件 csc.rsp 中设置预定义,这边配置的是针对不同的编译器,但对所有平台都生效
		参考下面的 编译配置文件.txt
	3.在程序集中根据条件来定义预定义
		Version Defines->点击+ 来添加条件定义
		当 Resource 指定的包的版本与 Expression 指定的表达式匹配时,Define 中的宏定义生效
		比如: Resource=Unity,Define=TEST_DEFINE,Expression=2020.3.35,则当unity版本号>=2020.3.35时预定义了 TEST_DEFINE
		Expression 表达式跟 NuGet 的规则一致 
			参考  https://docs.microsoft.com/en-us/nuget/concepts/package-versioning#version-ranges
			1.0		x ≥ 1.0	Minimum version, inclusive
			(1.0,)	x > 1.0	Minimum version, exclusive
			[1.0]	x == 1.0	Exact version match
			(,1.0]	x ≤ 1.0	Maximum version, inclusive
			(,1.0)	x < 1.0	Maximum version, exclusive
			[1.0,2.0]	1.0 ≤ x ≤ 2.0	Exact range, inclusive
			(1.0,2.0)	1.0 < x < 2.0	Exact range, exclusive
			[1.0,2.0)	1.0 ≤ x < 2.0	Mixed inclusive minimum and exclusive maximum version
			(1.0)	invalid	invalid
	
默认程序集
	系统默认生成的4个程序集文件,这4个程序集默认引用了包管理器中添加的所有程序集,可以通过包管理器添加新的包进行引用

编译配置文件

你可以在 Assets/ 目录下添加编译配置文件,配置文件的内容将直接传给编译器做为额外的编译参数
	编译参数是跟编译器匹配的,因此不同的编译器使用不同的编译配置文件
		2018.3 版之前使用 Mono C# 编译器 (mcs),配置文件必须是 mcs.rsp 
		2018.3 版开始使用 Roslyn C# 编译器 (csc),配置文件必须是 csc.rsp
	
csc.rsp 文件说明 
	每一行添加一个编译参数,编译器支持的选项可以在unity安装目录下找到对应编译器(比如 csc.exe),然后运行 csc -help 获得
	-r:System.Net.Http.dll		表示引用程序集,该程序集必须位于 Assets/ 目录下或其子目录下,或者是 .net 标准库自带的
		有些 .net 4.x 中的库就需要这种方式来进行引用,切换到 .net 2.0 时会报错,比如 System.Net.Http.dll
	-define:UNITY_DEBUG			添加自定义预定义
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值