跳转到内容

10. 配置

文件 Assets/sus.config.json

json
{
  "SharqDirectory": "Assets/MyUI",
  "GeneratedDirectory": "Assets/MyUI/Generated",
  "ResourcesDirectory": "Assets/MyUI/Generated/Resources/SusRuntime",
  "EnableValidation": true,
  "StrictVForKey": true,
  "LogGeneratedFiles": true,
  "HotReloadStatePreserve": true,
  "logLevel": "Warn"
}

请保持 ResourcesDirectory 位于 GeneratedDirectory 内部(Resources 镜像会写入生成输出的内部)。 根路径不一致(例如 .../gen.../Generated/Resources)会把输出拆成两棵目录树。

字段默认值含义
SharqDirectoryAssets/SusUI.sharq 源文件所在位置
GeneratedDirectoryAssets/SusUI/Generated.g.cs / .g.uss 的输出目录
ResourcesDirectory…/Generated/Resources/SusRuntime由编译器同步的 runtime Resources 目录(位于 GeneratedDirectory 内)
EnableValidationtrue运行 SharqValidator
StrictVForKeytruev-for 缺少 :key 时给出警告
LogGeneratedFilestrue将生成过程记录到控制台
HotReloadStatePreservetrue在 Play 模式下的 domain reload 期间保留 Prop<T> 的快照
logLevelWarnSusLog 的运行时最低级别(Error / Warn / Info / Verbose,不区分大小写)。审计与其他诊断在升到 Verbose 之前保持静默。见 11-api-reference

logLevel 在首次使用 SusLog 时从 Assets/sus.config.json 读取(对 player 安全;不是仅 Editor 的配置 UI)。代码可用 SusApp.UseLogLevel(...) / SusLog.Level 覆盖。脚本定义 SUS_VERBOSE_LOGS 会把下限抬到 Verbose,且不能被配置或 UseLogLevel 降低。

不存在 EnableHashCaching 字段 —— 增量编译使用的是编译器自身的缓存。