深圳市网站建设科技公司,腾讯云怎么备案网站,wordpress 网页加载慢,线上营销公司笔者按#xff1a;使用Unity版本为2021.3LTS#xff0c;与其他版本或有异同。请仅做参考 一、简述。 本文是笔者在学习使用Unity引擎的过程中#xff0c;产学研的一个笔记。由笔者根据官方文档Unity User Manual 2021.3 (LTS)/脚本/Unity 架构/脚本编译/程序集定义相关部分结…笔者按使用Unity版本为2021.3LTS与其他版本或有异同。请仅做参考 一、简述。 本文是笔者在学习使用Unity引擎的过程中产学研的一个笔记。由笔者根据官方文档Unity User Manual 2021.3 (LTS)/脚本/Unity 架构/脚本编译/程序集定义相关部分结合自身经验所做有不足之处还请指正。 二、导读。 1.程序集定义Assembly Definition和程序集引用Assembly Definition Reference是可创建用于将脚本组织为程序集的资源。 2.Unity代码工程一般默认创建两个程序集Assembly-CSharp非Editor目录下脚本归于此程序集 和Assembly-CSharp-Editor任何Editor目录下脚本都自动归于此程序集。 3.使用默认程序集对于小项目而言可以接受。但项目过大会有以下缺点 1.脚本有改动时Unity会重新编译当前程序集下所有脚本过多脚本会导致编译时间冗长。 2.理论上同一程序集内任何脚本都可相互访问引用导致项目耦合度高难以重构和优化改进代码。 3.所有脚本都针对所有平台进行编译。 4.定义程序集有以下优点 1.促进模块化和可重用性。 2.提升编译效率。 3.提升代码的平台适配性。 三、程序集定义。 1.程序集定义可以把你想单独成模块的脚本目录给独立出来到一个程序集中。 2.为每个程序集创建一个文件夹图3-2-1并将需要归入此程序集的脚本移入到文件夹目录中去图3-2-2然后再创建程序集定义资源以指定程序集属性图3-2-3。 3.新建的Assembly Definition Asset的属性面板如下 逐项解释 [Name] ——程序集名称一般在创建时便被定义可修改 General一般属性 [Allow ‘unsafe’ Code]是否允许使用不安全的编码 [Auto Referenced]程序集之间是否根据编译顺序自动引用相应的程序集 当不同程序集之间存在引用关系时程序集之间就会存在依赖关系。A引用BA依赖B。当Unity编译脚本时B必须先于A被编译好。如此A才可以访问其依赖项的已编译版本。A的程序集必须声明对程序集B的引用。 [No Engine References]不引用相关的程序集引用 [Override References]对预编译程序集的引用覆盖对预编译程序集的自动引用情况。一般为动态链接库dll [Root Namespace]当前程序集的默认命名空间在当前程序集中新建脚本时有用
Define Constraints定义约束条件。通过相应的“宏定义”来控制程序集的是否编译的行为。 –Assembly References–与Override References 一起使用选择需要引用程序集的程序集定义添加进来 Assembly Definition References程序集定义引用。 [Use GUIDs]勾选此选项可以允许引用的程序集修改名称而不受影响。提倡勾选 Platforms设置程序集的平台兼容性 Version Defines对不同的程序集进行不同的配置与定义。 3.新建程序集定义的文件。 *.asmdef。内部编码遵循Json格式故而除了可以在属性面板上修改之外也可以直接修改Json。 四、程序集定义引用。 1.程序集定义引用就是把当前目录下的脚本合并到指定程序集定义当中去。 2.创建程序集定义引用Assembly Definition Reference资源。 在Project窗口中找到需要包含到引用程序集中的脚本文件夹点击Assets-Create-Assembly Definition Reference定义名称。 3.新建程序集定义引用属性面板。 [Use GUID]使用程序集的Guid而非Name。 [Assembly Definition]指定对应的程序集定义。 4.新建程序集定义引用的文件。 *.asmref。内部编码遵循Json格式故而除了可以在属性面板上修改之外也可以直接修改Json。 五、以上就是程序集Assembly相关的部分。如果想了解更多建议去官网文档直接找程序集篇。有什么想法也可以和笔者讨论。