9.Unity打包安卓-设置相关-OtherSettings-脚本编译
9.1 知识点
Scripting Define Symbols 脚本定义符号
可以在此设置自定义编译标志。
再使用一些第三方内容时有时会在此处添加脚本符号。
比如:Lua热更相关、FairyGUI相关。
Unity有内置的脚本符号:
- 这些符号能够帮助我们有选择的在编译中包含或排除部分代码。
- 这些脚本符号可以配合多路测试 #if 进行使用。
#if 脚本符号 代码逻辑 #elif 脚本符号 代码逻辑 #else 代码逻辑 #endif
- 也可以自定义脚本符号,添加到这里来,这样代码执行时会走自定义脚本符号的逻辑。
平台脚本符号:
编辑器版本脚本符号:
其它脚本符号:
Additional Compiler Arguments 其它编译器参数
向此列表添加条目以将其他参数传递给 Roslyn 编译器。对每个附加参数使用一个新条目。
要创建新条目,请按“+”按钮。要删除条目,请按“-”按钮。
添加完所有所需参数后,单击“应用”按钮以在将来的编译中包括其他参数。“还原”按钮将此列表重置为最近应用的状态。
Suppress Common Warnings 禁止显示常见警告
禁用此设置可显示C#警告。
- CS0169:从不使用私有字段,声明了私有变量,但是从没有使用。
- CS0649:编译器检测到从未分配值的未初始化的私有或内部字段声明。
Allow ‘unsafe’ Code 允许使用“不安全”代码
启用对在预定义程序集中编译“unsafe”C#代码的支持。
Use Deterministic Compilation 使用确定性编译
启用此设置后,编译的程序集在每次编译时都是完全相同的。
禁用此设置可防止使用 -确定性
C# 标志进行编译。
确定性编译可用于确定二进制文件是否从受信任的源编译。
Enable Roslyn Analyzers 启用罗斯林分析器
禁用此设置可编译用户编写的脚本,而无需项目中可能存在的 Roslyn 分析器 DLL( Roslyn 就是微软的.Net开源编译器,编译器支持 C# 编译,并提供丰富的代码分析 API)。
10.2 unsafe关键词
unsafe 关键词的基本概念
默认情况下,C# 是不支持指针的,unsafe
关键词用于在 C# 表示不安全的上下文,如果想要在 C# 中进行任何和指针相关的操作,就必须配合 unsafe
关键词使用。
在公共语言运行时(CLR)中,不安全代码是指无法验证的代码。
C# 中的不安全代码不一定是危险的,只是 CLR 无法验证该代码的安全性。因此,CLR 将仅执行完全信任的程序集中的不安全代码。
如果你使用不安全代码,你应该负责确保代码不会引发安全风险或指针错误。
关于 CLR 是什么,可以观看 Unity 进阶之 C# 知识补充中相关的知识点
unsafe 关键词的基本使用
如果想要在 Unity 中正常使用 C# 中的 unsafe
关键词进行程序编写,我们必须在 Unity 的 Player Settings 中的 Other Settings 中将 Allow ‘unsafe’ Code 选项勾选上。
勾选该选项后,我们就可以在 Unity 中使用 unsafe
关键词了。
unsafe 关键词的基本用法:
- 用于修饰函数
- 用于修饰代码块
- 用于修饰成员变量
- 用于修饰类
总结
注意:unsafe
的使用虽然能让我们在 C# 中使用指针,但是会存在安全风险和稳定性风险,如果没有特殊需求,请尽量避免在 C# 中使用 unsafe
。
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com