参考资料
资料1
来源:https://forum.cocos.org/t/topic/148747/28
用户:homym(tkhoi01281)
3.x 版自定参数我是利用createMesh方法去生成ui,因为createMesh就有自定义顶点参数的方法
这个改动其实是可以弄一个新sprite 来继承老spirte, 然后把引擎里的simple.ts,splice.ts 等assembler 拷一份出来, 放到自己项目, 然后新sprite 复写一下assembler的初始化改为取你魔改的simple.ts,splice.ts就能弄一个新的sprite跟老的sprite一起用又不用改动引擎, 唯一缺点是新sprite和老sprite不能共同一个material
针对提问 “您好, 我也是想在3.x中使用自定义顶点合批。你是使用的 utils.createMesh 方法吗。”
不是,3.x版以sprite为例,需先继续Sprite,然后复写函数requestRenderData,这个父函数可以查看引擎源码的ui-renderer.ts ,其中RenderData.add([添加你想要的参数]) 比如:
RenderData.add([
new gfx.Attribute(gfx.AttributeName.ATTR_POSITION, gfx.Format.RGB32F),
new gfx.Attribute(gfx.AttributeName.ATTR_TEX_COORD, gfx.Format.RG32F),
new gfx.Attribute(gfx.AttributeName.ATTR_COLOR, gfx.Format.RGBA32F)
])
最后就是我上面回复的处理,把需要值塞到buffer里。
资料2
来源:https://forum.cocos.org/t/topic/95087
用户:GT(caogtaa)
介绍了在 CocosCreator2.x 中怎么完成如题需求。
标签:gfx,合批,Sprite,自定义,ts,createMesh,sprite From: https://www.cnblogs.com/bakabird/p/17789261.html