有没有办法修改spine或者龙骨动画上的数字???

spine版本4.0
引擎是cocos2dx-lua 3.17.2

论坛的大佬们提供的方案都是使用外部图片替换spine动画里的某个图片
有没有办法可以修改数字的???
比如有个 spine动画
动画里有个图片是 012345679 的数字
然后添加一个接口
比如 setString( 888 )
动画显示的出来的数字就是 888 这样
主要是用来实现一些奖励结算的

可以把spine 中的数字做成挂点,然后在挂点上放一个 label,设置这个 label 的 string

好像不太行。。。
数字是有动画的

Screen Shot 2021-12-31 at 17.40.35
生成挂点后,你展开后找到数字节点,然后在数字节点下添加个 label 子节点,导出的 spine 里的数字节点不要再带数字了,就是一个承载动画的空节点

可以换肤,这个我在creator做过,但是打包到真机上会报错。。。

        // 关卡提示
        let node = ResManager.getInstance().createNode("missionTips")
        if (node) {
            node.parent = LayerManager.getInstance().getParent();
            node.position = cc.v3(0, 100, 0);
            let spine = node.getComponent(sp.Skeleton);
            spine.setCompleteListener(() => {
                node.destroy();
            });
            spine.setEventListener((trackEntry: any, event: any)=>{
                if (event.data.name == "start") {
                    EventManager.getInstance().emit(EventType.CREATE_MONSTERS);
                }
            });

            let skData: sp.spine.SkeletonData = spine.skeletonData.getRuntimeData();
            let skin = skData.findSkin("default");
            // 当前进度
            cc.resources.load<cc.Texture2D>("atlas/num/" + level, cc.Texture2D, (err, texture: cc.Texture2D)=>{
                let slotIndex = skData.findSlotIndex("images/1")
                let attachment = skin.getAttachment(slotIndex, "images/1") as sp.spine.RegionAttachment;
                let region = this.createRegion(texture);
                attachment.region = region;
                attachment.setRegion(region);
                attachment.updateOffset();
            });
            // 总进度
            cc.resources.load<cc.Texture2D>("atlas/num/" + cfgs.length, cc.Texture2D, (err, texture: cc.Texture2D)=>{
                let slotIndex = skData.findSlotIndex("images/chap")
                let attachment = skin.getAttachment(slotIndex, "images/1") as sp.spine.RegionAttachment;
                let region = this.createRegion(texture);
                attachment.region = region;
                attachment.setRegion(region);
                attachment.updateOffset();
            });
            spine.setAnimation(0, "animation", false);
        }
    }

private createRegion (texture: cc.Texture2D) {
    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
    return region
}

这是以前的代码,lua中没实现过,但是creator的话真机报错无效,好像是TextureAtlasRegion不存在

替换外部图片参考论坛的教程 在cocos2dx-lua里 搞出来了
图片数字没有搞出来

我擦
还能这样。。。
creator可以这么搞
cocos2dx-lua 咋办。。。
目前项目是用 cocos2dx-lua开发的 :sob:

lua没用过,不清楚

图片和图片数字不一样么。。。?有区别?

应该是他没有 0-999共 1000 张图,这么多也不合适,只有 0-9 共 10 张图,数字的位数会导致需要生成位数个数字图片合起来或者放多个子节点,处理起来不是一一对应,比较麻烦吧