惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
SegmentFault 最新的问题
爱范儿
爱范儿
博客园 - Franky
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
WordPress大学
WordPress大学
宝玉的分享
宝玉的分享
雷峰网
雷峰网
酷 壳 – CoolShell
酷 壳 – CoolShell
IT之家
IT之家
有赞技术团队
有赞技术团队
美团技术团队
Last Week in AI
Last Week in AI
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
大猫的无限游戏
大猫的无限游戏
The Cloudflare Blog
Jina AI
Jina AI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Engineering at Meta
Engineering at Meta
T
Tailwind CSS Blog
J
Java Code Geeks
Martin Fowler
Martin Fowler
I
InfoQ
小众软件
小众软件
MongoDB | Blog
MongoDB | Blog

博客园 - 野生西瓜

[Unity 杂货铺] 编辑器中的 C# 代码热重载 [Unity 杂货铺] 禁用 Domain Reload 提高效率 [Unity 杂货铺] TMP 字体在编辑器中的动态数据清理 [Unity 杂货铺] SpriteAtlas 和 SBP 打包 [Unity 杂货铺] 游戏字体选择 [Unity 杂货铺] 游戏项目的结构规划与初始化 [Unity 杂货铺] Git 配置与实践 [Unity 杂货铺] 引擎版本的选择 [Unity] 基础寻路算法 - 环境搭建 [Unity] 引擎脚本相关的字符串优化 [Unity] 基础寻路算法 - 代码实践 [Unity] 资源工作流程 - ScriptedImporter [Unity] 资源工作流程 - 辅助工具 [Lua游戏AI开发指南] 笔记零 - 框架搭建 [GAME] [Civilization] 文明6字体及字体大小修改 [Unity] 编辑器运行中动态编译执行C#代码 [Unity] 在软件标题栏显示工作路径 [GAMEDEV] 个人开发如何找到合适的图片素材? [施工中] 博客导航 2021 的书 [BACKUP] Visual Studio Code 配置 [theHunterCOTW] 猎人荒野的召唤-一点资料
[Unity] 资源工作流程 - AssetPostprocessor
野生西瓜 · 2022-04-14 · via 博客园 - 野生西瓜

本文始发于:https://www.cnblogs.com/wildmelon/p/16144087.html

一、参考资料

  1. ScriptReference - AssetPostprocessor

二、说明

Unity 提供了 AssetPostProcessor 允许开发者挂接到导入管线并在导入资源的前后运行脚本。可用于项目中强制执行某些最低标准。每次导入资源或者资源的导入设置发生更改时将回调此类。

AssetPostProcessor 中可以获取到资源的导入器 AssetImporter,通常是在 OnPreXXX 回调中对 assetImporter 进行预处理以影响资源导入的结果。

通常,预处理可根据文件的后缀(png/jpg/...)、与美术协定的资源命名格式、当前导入的平台、当前资源的路径来对项目中的资源进行约束。

常用的回调接口包括:

  1. OnPreprocessTexture,导入纹理,可能是最常用的回调,对各种图片资源进行预处理(压缩格式,读写开关,最大纹理大小)
  2. OnPreprocessAudio,导入音频剪辑
  3. OnPreprocessModel,导入模型,根据模型资源的命名规则或者存放路径进行分类处理
  4. OnPreprocessAsset,在导入所有资源之前获取通知

三、AssetPostprocessor

可配合 ScriptableObjectPreset 将部分硬编码的数据进行封装,可以更方便地进行修改和调试

using UnityEditor;

public class TexturePostprocessor : AssetPostprocessor
{
    void OnPreprocessTexture()
    {
        TextureImporter textureImporter = assetImporter as TextureImporter;
        textureImporter.isReadable = false;
    }
}