Unity资产管线流程与框架
AssetPostprocessor与ScriptedImporter(资产导入 与资产操作之后(OnPostProcessAllAssets)
流程图

整体代码框架

自定义Import规则

AssetModificationProcessor(资产操作之前)
代码框架

IPreprocess(Compute)Shaders与shader_feature与muti_compile(打包Shader资产)
IPreprocess(Compute)Shaders.OnProcess(Compute)Shaders
参数:
- (Compute)Shader shader,
- ShaderSnippetData snippet(String kernelName)
- Ilist< ShaderComplierData > data
Shader Variants Collection

shader_feature与muti_compile
_ {local} _ {frag/vertex}
- local表示Shader局部宏 (局部<=64)
- frag,vertex表示变体作用域(控制编译打包范围)
shader_feature
- 编译时按需打包(跟.mat的yaml和.shadervariants有关)
范围)
muti_compile
SVC(.shadervariants)
- 用于提前加载Shader及其变体(Shader预热)
- 用于在shader_feature按需打包的基础上增加逻辑上的shader_feature(Shader.EnableKeyword())
IPreprocess(Compute)Shaders
- 对于 IPreprocess(Compute)Shaders ,擅长针对muti_compile进行非合理的Shader变体的打包剔除
- 配合ShaderSnippetData.passName与ShaderSnippetData.shaderType剔除变体多余_frag与_vertex版本