我看上面修改了engine的代码,那就要自己加载引擎包了,有没有非侵入的方法呢?能不能就是利用现有的api来完成precompile。本人纯萌新,我网上搜了相关的内容都是unity的,不知道cocos咋整。
小游戏这里不用改引擎也可以的,直接调shader.gpuShader的属性即可,这个属性是现有的API。
name 和 define 建议自己加个hook,在游戏运行的时候收集下来存json使用。
原生的要改引擎加接口去显式调用,如果还按直接调gfxShader的getter的方式,在某些backend上无效。
另外里面那个defines.precompile = true 你可以不用加,这个是我内部的一个标志使用。
2赞
赞赞赞
大佬,我还有个疑惑,有关于着色器缓存的,我翻了一下文档和源码,以及查看微信小游戏gamecache,都没有找到shader cache,是官方没有做吗?还有就是小游戏做这个的必要性,看网上说的,shader cache非常占空间。