NLDClient-yudde/ProjectNLD/AI_CODE/batch_resource_checker_impr...

3.0 KiB
Raw Blame History

Unity资源批量检查工具FileCheckerBatchRunner改进与集成实践总结

背景

为保障大型Unity项目资产管理质量需实现稳定的批量资源检查、持续集成检测和性能优化要求

  • 支持所有/部分checker批量校验
  • 能自动高效导出多checker各自的检查报告
  • 适配自动化、CI流水线和人工批量查错场景

主要讨论与改造要点

  1. Checker唯一标识方式改进

    • 早期命令行仅支持CheckerName中文或展示名参数易混淆经优化后支持checker类型名如ChineseFileNameCheckerCLI和脚本均能使用类名批量调用。
  2. 文件后缀二次筛选

    • 兼容UI工具行为每个checker实际检查前都会再根据自己支持的后缀列表过滤无需遍历不关心的资产。
  3. 批量资源/场景高效分组与分类处理

    • 批处理由原本逐checker->逐文件升级为按CheckerTabType分组实现同类checker对所有相关文件/场景统一批量加载与检测。
    • 如: 同一场景文件只切换一次多个Scene checker依次运行极大提升检测大场景/大批量文件时的性能。
  4. 资源模式与还原机制

    • 批检查Scene类资源时会保存和还原原始场景避免检测后环境受污染。
  5. 报告导出能力优化

    • 导出CSV命名自动带上检查结果条目数如 中文文件名检查器-[12].csv一目了然。
    • 批处理自动指定导出目录,无人值守自动落盘。
  6. 跨平台命令行工具辅助能力

    • 提供参数校验/自动输出辅助提示与详细日志,批次执行耗时统计等。
  7. 错误处理与兼容性保障

    • 合理处理EditorUtility.SaveFilePanel导致的batchmode下无效情况保证异常与batch环境下的文件可靠写出。
    • 强类型属性访问替换所有反射调用提升健壮性和IDE体验。

批量命令调用示例

run_file_checkers.bat -all -output C:\result_dir
run_file_checkers.bat -checkers "ChineseFileNameChecker,LargeTextureChecker" -output C:\result_dir
  • 支持用类型名调用
  • 结果报告自动分文件、带条目数,目录下直观可见

迁移并集成的主要文件

  • Assets/PhxhSDK/Editor/FileChecker/FileCheckerBatchRunner.cs
  • Assets/PhxhSDK/Editor/FileChecker/ReportExporter.cs
  • Tool/build_tools/run_file_checkers.bat
  • Assets/PhxhSDK/Editor/FileChecker/README.md详细批命令说明与集成案例

实践过程体会与经验

  • 统一逻辑、UI和批处理行为至关重要减少二义性提高协同沟通比如checker类型名标准化
  • 大批量场景/资源检测场景需主动规避重复IO、场景频繁重载等低效结构。
  • 批处理日志和参数校验对 CI 非常重要,对错误快速定位节省大量人力。
  • 保持README和用法示例同步更新有助于团队长期可维护运维。

自动生成建议在团队内部CodeReview后补充丰富案例、典型CI集成流程等知识。