龙骨换装 换装只能换同一图集内的资源,无法多个多个图集同时使用

  • Creator 版本:

  • 目标平台:

  • 详细报错信息,包含调用堆栈:

  • 重现方式:

  • 之前哪个版本是正常的 :

  • 手机型号 :

  • 手机浏览器 :

  • 编辑器操作系统 :

  • 编辑器之前是否有其它报错 :

  • 出现概率:

  • 额外线索:

动态加载替换皮肤?这一部分你的自己定制哦,可以参考:
https://github.com/Jno1995/dragonBone-spine_Dome

1赞

我看你发的demo里面皮肤替换也是基于同一个图集,如果一个模型内需要两个图集内的资源呢?这个怎么实现,我看creator里面Dragon atlas asset只能设置一个图集,怎么同时加载多个呢,或者一个模型身上的皮肤怎么使用碎图?谢谢解惑

你看源码,整个骨骼都是用的同一个texture,不支持多个图集,除非改源码, 或者用display而不是子骨骼来替代。
`drawArmature (ctx, armature, texture, matrix) {
let slots = armature._slots;

    for (let i = 0, l = slots.length; i < l; i++) {
        let slot = slots[i];
        if (!slot._visible || !slot._displayData) continue;

        if (slot.childArmature) {
            math.mat4.mul(_matrix, matrix, slot._matrix);
            this.drawArmature(ctx, slot.childArmature, texture, _matrix);
            continue;
        }

        let localVertices = slot._localVertices;

        if (localVertices.length !== 4) {
            continue;
        }

        ctx.save();
        
        math.mat4.mul(_matrix2, matrix, slot._matrix);

        let m = _matrix2;
        ctx.transform(m.m00, -m.m01, -m.m04, m.m05, m.m12, -m.m13);
        
        let vertices = slot._vertices;
        let sx = vertices[0].u * texture.width;
        let sy = vertices[3].v * texture.height;
        let sw = vertices[3].u * texture.width - sx;
        let sh = vertices[0].v * texture.height - sy;

        let x = localVertices[0].x;
        let y = localVertices[0].y;
        let w = localVertices[3].x - x;
        let h = localVertices[3].y - y;
        y = -y-h;

        _color._val = slot._color;
        let image = utils.getFrameCache(texture, _color, sx, sy, sw, sh);

        ctx.drawImage(image, x, y, w, h);

        ctx.restore();
    }
}`

我们的龙骨现在有5个文件的情况,也是不知道怎么加载,请问你这个问题搞定了么?

这个问题官方已经修复了,可以去github上看