creator 3.2 Spine怎样使用外部的实现换装呢?

因为衣服都是随机的,使用皮肤换装不可行,不可能做那么多种组合皮肤,那怎样实现替换某个图片呢

sp.SkeletonTexture();这个方法需要传入参数,但是不知道怎样传

ChangeCloth(sk: sp.Skeleton, slotName: string, texture: Texture2D) {undefined

    //获取插槽

   

    let slot = sk.findSlot(slotName);

   

    //获取挂件

   

    let att = slot.attachment;

   

    //创建region

   

    let skeletonTexture = new sp.SkeletonTexture();

   

    skeletonTexture.setRealTexture(texture)

   

    let page = new sp.spine.TextureAtlasPage()

   

    page.name = texture.name

   

    page.uWrap = sp.spine.TextureWrap.ClampToEdge

   

    page.vWrap = sp.spine.TextureWrap.ClampToEdge

   

    page.texture = skeletonTexture

   

    page.texture.setWraps(page.uWrap, page.vWrap)

   

    page.width = texture.width

   

    page.height = texture.height

   

    let region = new sp.spine.TextureAtlasRegion()

   

    region.page = page

   

    region.width = texture.width

   

    region.height = texture.height

   

    region.originalWidth = texture.width

   

    region.originalHeight = texture.height

   

    region.rotate = false

   

    region.u = 0

   

    region.v = 0

   

    region.u2 = 1

   

    region.v2 = 1

   

    region.texture = skeletonTexture

   

    //替换region

   

    att.region = region

   

    att.setRegion(region)

   

    att.updateOffset();

   

    }

https://github.com/cocos/cocos-awesome-tech-solutions/tree/main/demo/Creator3.3.0_2D_spine_changeSlot_with_texture
看这个有没有帮助

1赞

您好,怎样换一个slot下的多张图片呢
比如
“item_near”: {

        "gun_1": { "name": "kulou002/kulou002_gun", "x": 155.69, "y": 76.61, "rotation": 2.26, "width": 608, "height": 425 },

        "machineGun_1": { "name": "kulou002/kulou002_machineGun", "x": 170.78, "y": 72.08, "rotation": 2.26, "width": 660, "height": 424 },

        "pistol_1": { "name": "kulou002/kulou002_pistol", "x": 67.45, "y": 69.85, "rotation": 6.32, "width": 461, "height": 323 },

        "sword_1": { "name": "kulou002/kulou002_sword_1", "x": 8.54, "y": 262.34, "width": 512, "height": 880 }

    },

其实就是更换插槽的图片

插槽内如果有好几张图片呢

image
使用文档例子会出现这种情况,外部图片不能有多余的透明区域么?

image 新建了一个项目,又好了,,,