Unity 打包Shader优化
我们一直以来的项目Shader基本都会打包到一个package里面,游戏启动时会进行预加载这个Package,且预加载其中一些常用的Shader,最近新发现一个坑点,那就是shader依赖了特效的一些资源,
发现是Shader在使用时赋值了一些默认贴图资源导致的,接下来对这个问题做了一些处理,如果你的项目的shader也希望不要逆向和资源依赖耦合的话,可以看看。
1.查看Shader_Package是否有逆向依赖于资源
打开对应Shader_Package.manifest,查看其中的dependencies是否为空。
2.查看哪些Shader有逆向依赖资源
选取shader,利用AssetDataBase.GetAssetPath获取对象路径
在用GetDependcies(string path)接口获取所有的依赖
打印这些依赖项(Unity2019.1可以考虑过滤掉自身)
3.删除Shader的逆向依赖
打开Shader的meta文件,找到对应的defaultTexture属性,删除所有。
4.重新编译,即完成。