egret dragonbones部件替换产生位移的解决方案

时间:2022-04-17 20:33:03

原理:使用Armature.getSlot("urpart").display.texture去替换骨骼纹理即可
需要:
1 骨骼动画导出的时候不要裁剪部件的透明区域,在导出设置里面设置

2 非骨骼动画带的部件纹理的尺寸,需要和骨骼动画里面的尺寸保持一致,这个要看美术了,
如果骨骼动画里面的部件尺寸是100*100,那么你的替换部件尺寸也要是100*100
如果你的骨骼动画里面的部件尺寸是100*100,导出时时候缩放到80%,
那么你的替换素材应该是80*80

优点:
1 与美术协定之后,程序不需要去debug这个该死的位移,并且这些部件可以去即时加载
2 替换texture比替换display效率更方便,毕竟display是属于displayObject级别的,替换texture的话无需新建display,,下一帧渲染直接用这个texture就可以了

缺点:

1 官方不推荐,不知道为啥不推荐,但是个人认为比替换display要方便和保险一点
2 导出的时候不能裁切透明区域,会导致骨骼动画的sheet稍微大一点点(但是这个其实没有多大影响的)