跳到主要内容

LeanCLR 项目设置

配置前请先阅读

LeanAOT 与包体优化概念 说明了 LeanAOT、aot.xml、PGO、延迟加载、热更新 的区别。延迟加载与热更新是不同机制,且与 AOT 配置相互独立。

通过 LeanCLR → Settings...Edit → Project Settings → LeanCLR 打开。配置保存在 ProjectSettings/LeanCLR.asset,离开设置页时自动保存。

主开关

选项说明
Enable是否启用 LeanCLR。关闭后,打包不会走 LeanCLR / LeanAOT 替换流程,行为与未安装插件时一致

Lean AOT 设置

展开 Lean AOTleanAOTSettings)可配置打包阶段 LeanAOT 行为。未展开时使用内置默认值:布局校验关闭,规则文件与延迟加载列表为空。

layoutValidation

是否开启托管类型布局校验,便于在开发期发现与原生布局不一致的问题。

  • 默认:关闭
  • 建议:仅在排查布局问题时开启

对应 LeanAOT 开关 --leanaot-enable-layout-validation(亦可通过 LEANAOT_EXTRA_ARGS 传入,见 CLI 参考)。

ruleFiles

AOT 规则文件aot.xml)路径列表,可配置多个。用于控制 哪些托管代码被 LeanAOT 译为原生代码(减小 AOT 体积),影响 global-metadata.dat。概念说明见 概念辨析 — AOT 规则文件

  • 路径可为相对 Unity 工程根目录(与 Assets 同级)的相对路径,或本机绝对路径
  • 打包前校验文件存在,不存在则构建失败
  • 留空表示不使用外部规则文件

规则文件语法见 AOT 规则文件。与 Unity link.xml 无关

lazyLoadedAssemblyNames

延迟加载程序集短名列表。构建时不写入 global-metadata.dat,但仍参与 LeanAOT;运行时 Assembly.Load 的 DLL 必须与 Library/LeanCLR/ManagedStripped/{buildTarget}/本次构建裁剪结果字节完全一致不允许改动。概念说明见 概念辨析 — 延迟加载

  • 加载说明见 延迟加载
  • 不可hotUpdateAssemblyNames 重复

enablePgoProfile

启用 PGO Profile 采集:构建时向 LeanAOT / 运行时注入统计桩,用于采集热路径数据。

  • 用于生成 pgo-aot.xml 的 profiling 构建应开启
  • 正式发包构建应关闭

详见 Unity 中的 PGO

pgoRuleFiles

PGO 规则文件路径列表。输出文件名建议为 pgo-aot.xml,格式与 aot.xml 不同。由 profile JSON 经 pgo2aot 生成,供 LeanAOT 追加 AOT 热点。概念说明见 概念辨析 — PGO

打包时传给 LeanAOT 的 --leanaot-pgo-rule-file。技术说明见 Profile Guided AOT

热更新设置

展开 Hot UpdatehotUpdateSettings,类 HotUpdateSettings)配置热更新程序集。

hotUpdateAssemblyNames

热更新程序集短名列表(无 .dll 后缀)。构建前由 FilterHotUpdateAssembly 从构建管线过滤完全不参与 LeanAOT,运行时通过 Assembly.Load 加载可变更的 DLL。

  • lazyLoadedAssemblyNames 互斥,不可配置同一程序集
  • 详见 代码热更新

环境变量(高级)

部分 LeanAOT 专有参数可通过环境变量 LEANAOT_EXTRA_ARGS 在启动 Unity / Bee 之前注入,无需修改 Unity 命令行。完整列表见 CLI 参考