自定义assembler在原生平台不能正常运行
经排查原因是js版本的fillBuffers函数并没有执行,而是执行了c++版本的fillBuffers
由于我的assembler是用ts写的,而且在fillBuffers函数里有一些逻辑代码,怎么才能适配呢?
有做过的大佬吗?给点思路
回退 3.5 版本就好了
我用的是2.4.11
没有遇到过的
2.x版本我记得这样,你把fillbuffer里面的操作写道updateRenderData里面试试,有点记不清了
好,我去试试看
不行啊,老哥,updateRenderData只执行一次
我想在每帧执行fillBuffers之前,先执行我的逻辑代码
有解决过这个问题的大佬吗?麻烦指点一下
UpdateRenderData是正解。可以参考下这个效果的实现。
刚试过了,updateRenderData确实可以的。
不过有个前提:renderCompont的update里要每帧执行setVertsDirty,才能确保updataRenderData每帧都执行,我之前就是少了这一步。
一般情况下改node的自带属性,引擎都会自动setVertsDirty。
如果改的是和Assembler装配数据有关的自定义属性,需要手动setVertsDirty。
OK,这样讲就很清晰了
刚试了下,原生平台改node自带属性,引擎不会自动setVertsDirty。
好吧,以你实测为准,我很久没碰了