9.OtherSettings-ScriptCompilation 其他设置-脚本编译

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 关键词的基本用法:

  1. 用于修饰函数
  2. 用于修饰代码块
  3. 用于修饰成员变量
  4. 用于修饰类

总结

注意:unsafe 的使用虽然能让我们在 C# 中使用指针,但是会存在安全风险和稳定性风险,如果没有特殊需求,请尽量避免在 C# 中使用 unsafe



转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com

×

喜欢就点赞,疼爱就打赏