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.重新编译,即完成。

 

posted @ 2020-12-14 17:20  保护我方麦阔嘞  阅读(931)  评论(0)    收藏  举报