[Unity] 资源工作流程 - AssetPostprocessor
本文始发于:https://www.cnblogs.com/wildmelon/p/16144087.html
一、参考资料
二、说明
Unity 提供了 AssetPostProcessor 允许开发者挂接到导入管线并在导入资源的前后运行脚本。可用于项目中强制执行某些最低标准。每次导入资源或者资源的导入设置发生更改时将回调此类。
AssetPostProcessor 中可以获取到资源的导入器 AssetImporter,通常是在 OnPreXXX 回调中对 assetImporter 进行预处理以影响资源导入的结果。
通常,预处理可根据文件的后缀(png/jpg/...)、与美术协定的资源命名格式、当前导入的平台、当前资源的路径来对项目中的资源进行约束。
常用的回调接口包括:
- OnPreprocessTexture,导入纹理,可能是最常用的回调,对各种图片资源进行预处理(压缩格式,读写开关,最大纹理大小)
- OnPreprocessAudio,导入音频剪辑
- OnPreprocessModel,导入模型,根据模型资源的命名规则或者存放路径进行分类处理
- OnPreprocessAsset,在导入所有资源之前获取通知
三、AssetPostprocessor
可配合 ScriptableObject 和 Preset 将部分硬编码的数据进行封装,可以更方便地进行修改和调试
using UnityEditor;
public class TexturePostprocessor : AssetPostprocessor
{
void OnPreprocessTexture()
{
TextureImporter textureImporter = assetImporter as TextureImporter;
textureImporter.isReadable = false;
}
}