3.8.2 spine使用setSlotTexture换装时会影响别的实例

项目使用一个模板spine,不同人物通过设置不同的skin以及部分部位替换不同的图片实现换装。目前web平台没有问题,安卓平台上所有人物都显示了同一套衣服。

使用代码如下
this.spine.setSkin(skin)
this.setSlotTexture(tex1, slot1, this.skeleton)
this.setSlotTexture(tex2, slot2, this.skeleton)
this.setSlotTexture(tex3, slot3, this.skeleton)
this.setSlotTexture(tex4, slot4, this.skeleton)

setSlotTexture(tex2DPath : string, slotName : string, skeleton : sp.Skeleton) {
loadTex2D(tex2DPath, “module-player-res”, (tex2D) => {
skeleton.setSlotTexture(slotName, tex2D, false)
}
}

使用skeleton.setSlotTexture(slotName, tex2D, false) 表现为同一套衣服。
使用skeleton.setSlotTexture(slotName, tex2D, true) 表现为spine的默认skin。

请问怎么解决?

已解决
1.修改引擎SkeletonRenderer.cpp中的setslottexture方法,在createAttachment=true的情况下记录slotName和新创建的attachment
2.在Skeleton.cpp中的getAttachment方法中 优先查找在1步骤中的记录

1赞