前言

我们在项目中往往有大量的美术资源,包括但不限于,贴图,模型,动画等,而我们基本上很多资源都是应用的同一套导入配置,如果人为来进行配置的话会非常麻烦,还很容易出错,所以需要一个工具来处理他们导入时的配置,以及已经存在于项目中的资源进行批量配置。

正文

每个资源的AssetImporter面板设置下文统称为规则

技术概要

  • 首先是应用规则匹配机制的制定,一般有文件夹,文件夹+文件部分关键字两种匹配机制。
  • Unity提供了一个AssetPostprocessor类支持我们进行资源导入的预处理和后处理操作。
  • 我们的每个规则必须对应一个临时文件,用于存储规则来进行批处理。
  • 对于导入资源的规则赋值我们采用反射的方式,但是请注意剔除引用类型和保留部分枚举类型。
  • 对于贴图类型,比较特殊,他有对每个平台的差异化配置,而这一类型又是引用类型,所以对此只能单独处理,采用GetPlatformTextureSettings方法来对不同平台设置进行获取,通过SetPlatformTextureSettings来对不同平台进行设置。
  • 配置好之后请务必调用assetImporter.SaveAndReimport,这样才不会在退出编辑器的时候丢失配置。
  • 最后是对于项目中已存在资源进行批处理,这部分做一个按钮,直接调用前一部分拆分好的逻辑即可,架构随个人喜好。

  • assetImporter.SaveAndReimport并不会在当前帧执行,而会在下一帧,如果不注意这一点的话在因为复杂的需求而做复杂的状态控制时会很难受。