查了很久都没有发现用ts写的Material教程,代码提示也没有,所以自己撸了一个ts版的Material demo,把有用到的数据和函数都写在类中方便代码提示。用的是CocosCreatorV2.0.5。

主要的代码实现在render-engine.js下可以查到,报错了去看看说不定会有意外的发现。
github地址 https://github.com/nhljh1234/CocosCreator_Material_Ts
实现过程中发现有很多暗坑比较蛋疼。分享一下
1.technique创建的时候必须指定一个[‘transparent’],在stencil-manager.js的StencilManager的handleEffect下有使用
2.material在绑定effect的时候必须绑定_effect和effect两个,代码类似于this._material._effect = this._material.effect = effect,这两个在不同的地方有用到,感觉可以改进
3.material必须绑定_texture,否则会在simple.js中的_activateMaterial重置成默认的SpriteMaterial
4.material必须指定一个_mainTech,在CCRenderComponent.js中的_updateBlendFunc会取这个值
最后说一下感受,新版的Material功能和灵活性比以前强很多。不过没有文档的话用起来也比较吃力,希望官方大佬可以早点出一个文档。