回滚旧贴图重新导入,meta文件不变

1、问题描述

提交记录 7e9d6275da88a87dbd69e42f17f20174f4af5d9b

截图

这图片,原本ios的压缩格式是 RGBA32 (meta显示 textureFormat: 4)

代码在OnPreprocessTexture处设置了正确的格式
截图
这几处打log,输出
截图

导入unity,刷新资源后,unity显示

截图

但meta文件没发生变化!

截图


2、后果

用安卓格式的复现
截图
截图

,打出ab
截图
表现正常,没因为格式不同拆分图集。

但因为meta文件是错的!所以提交到git上的就是错误信息,不知道有没什么暗含坑,还是需要处理!


3、解决方法

3.1 手动reimport


导入资源后,再对出问题的资源reimport

截图

缺点:人工操作容易漏改。


3.2 改动导入贴图代码

在OnPostprocessTexture处,检查资源的meta文件,

截图

这两处是否为 textureFormat: 4

如果是,reimport一次该资源

AssetDatabase.ImportAsset(assetPath);

处理后,回滚出问题的图片效果:
截图

截图

缺点:

  1. 导入贴图时引入了检查meta文件操作,有增加一定的耗时;
  2. 检查时,对应的meta文件其实还没被unity改动(即格式修改还没被写进meta),能正常改动meta文件的资源也会被重新导入一次。