?
ShaderHelper2 组件我们已经介绍过两次了
本文主要介绍这次组件改进的地方,文末还有更多惊喜!虽然 ShaderHelper2 支持了在 Cocos Creator 2.1.2 以上引擎版本使用,使用体验也得到了改进,但是 Shawn 编写的组件的理念是希望能为策划、美术以及非程序员提供内容生产的能力,在易用性上再进一步,改进功能点如下:自动隐藏props属性 当一个Shader Effect中不含有可调节的参数,ShaderHelper 组件将不会显示props属性到属性面板上,看下图:可以看Dissolve特效组件属性非常简洁,仅有一个 Program 属性
我们仍然可以使用 ShaderTime 组件调节动态 time 参数。自动枚举参数到props属性 如果一个Shader Effect 是含有参数的,当切换 Program 属性时将会自动刷新 props 属性,枚举出Shader 的可控参数,看下图:
同时注意,参数的Key值是只读,不会因为误操作修改出错,
let defineUserTexture = !!effectAsset.shaders.find(shader => shader.defines.find(def => def.name === ‘USE_TEXTURE‘));
if (defineUserTexture) {
material.define(‘USE_TEXTURE‘, true);
}同样,如果选择非动态Shader,同时为节点添加了 ShaderTime 组件,也会出现类似上面的警告,同样得到的修正:protected update(dt) {
this._material = this.getComponent(cc.Sprite).sharedMaterials[0];
if (this.node.active && this._material && this._material.effect._properties.time) {
this._setShaderTime(dt);
}
}结语 以上是本次 ShaderHelper2 组件主要的改进之处,Shawn 现在将组件放到了微店上,但不用担心,组件是免费的,我在微店上帖出了组件在 Github 仓库地址。
?
?
?