资源导入

Reference

作者: https://github.com/lwwhb
文章地址: Unity2022_SUNTAIL_Stylized_Fantasy_Village_Optimization/Documents/2022年3月1日 第柒讲 资源导入工作流

资源导入工作流的三种方案

1. 手动编写工具

优点: 根据项目特点自定义安排导入工作流,并且可以和后续资源制作与大包工作流结合

缺点: 存在开发和维护成本,会让编辑器菜单界面变得复杂,对新人理解工程不友好

适合类型: 大型商业游戏团队

AssetPostprocessor

​ 编写编辑器代码继承AssetPostprocesser对象自定义实现一些列OnPreprocessXXX接口修改资源导入设置属性

伪代码:

1
2
3
4
5
6
7
8
9
10
public class XXXAssetPostprocessor : AssetPostprocessor 
{
public void OnPreprocessXXXAsset()
{
XXXAssetImporter xxxImporter = (XXXAssetImporter)assetImporter;
xxxImporter.属性 = xxx
...
xxxImporter.SaveAndReimport();
}
}

参考资料: https://docs.unity3d.com/cn/2021.2/Manual/BestPracticeUnderstandingPerformanceInUnity4.html

AssetsModifiedProcessor(新试验接口):

​ 资源被添加、删除、修改、移动时回调该对象的OnAssetsModified接口

1
2
3
4
void OnAssetsModified(string[] changedAssets, string[] addedAssets, string[] deletedAssets, AssetMoveInfo[] movedAssets)
{
...
}

2. 利用Presets功能

优点: 使用简单方便,只需要Assets目录结构合理规范即可

缺点: 无法和后续工作流整合,只适合做资源导入设置。

适合类型: 小型团队或中小规模项目

参考资料:https://docs.unity3d.com/cn/2021.2/Manual/DefaultPresetsByFolder.html

使用方法

  1. 对相应资源制作Preset配置文件。

  1. 在项目配置中可以制定默认的资源导入时的配置参数。

  1. 考虑到误操作导致的项目资源配置信息发生改变可以使用

AssetsModifiedProcessor(新试验接口):

资源被添加、删除、修改、移动时回调该对象的OnAssetsModified接口

例如当资源被修改时,我们重新配置其资源配置为默认的Preset

1
2
3
4
void OnAssetsModified(string[] changedAssets, string[] addedAssets, string[] deletedAssets, AssetMoveInfo[] movedAssets)
{
...
}

3. 利用AssetGraph工具

优点: 功能全,覆盖Unity资源工作流全流程,节点化编辑,直观

缺点: 有一定上手成本,一些自定义生成节点也需要开发,不是Unity标准包,Unity新功能支持较慢。

适合类型: 任何规模项目和中大型团队

AssetGraph仓库地址:https://github.com/Unity-Technologies/AssetGraph