龙骨怎么删除或隐藏某个骨骼

  • Creator 版本:

  • 目标平台:

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

  • 重现方式:

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

  • 手机型号 :

  • 手机浏览器 :

  • 编辑器操作系统 :

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

  • 出现概率:

  • 额外线索:

有大神能指导下吗,armature().getBone(),但怎么删除这个骨骼,或者怎么让骨骼上的图不显示。。。

这个没人知道吗,实现不了吗,比如有个角色身上有翅膀,有时要不显示,这要怎么做了

@jare

没看过api,不知道有啥接口。可以提供你一个思路,使用替换贴图,贴图为一张透明图

/**
     * 设置插槽显隐
     * @param boneName 插槽
     * @param state 状态
     */
    setBonesVisible(boneName:string, state:boolean) {
        //@ts-ignore
        let attachUtil = this.bones.attachUtil;
        let armature: dragonBones.Armature = attachUtil._armature;
        let bones = armature.getBones(), findBone:dragonBones.Bone;
        for (let i = 0, l = bones.length; i < l; i++) {
            let bone = bones[i];
            if (boneName === bone.name) {
                findBone = bone;
            }
        }
        if(findBone){
            findBone.visible = state;
        }else{
            cc.error(`${this.bones.armatureName}-${this.bones.animationName}没有这个插槽:${boneName}`)
        }
    }

this.bones为dragonBones.ArmatureDisplay

谢谢,能请教你一个问题吗,一个插槽里有三个图,我设置插槽的displayIndex,想达到动态换肤,可是好像不行,你有遇到吗

我们用的spine,你看一下引擎attachUtil它渲染drongbones的源码,来写吧,应该是替换某个对象而不是单单设置一下 displayindex

应该是可以的 我就这么用了。displayIndex = -1。是隐藏。0是显示。还有确认是否能获取那个插槽吧。

/**
 * 设置对应名称骨骼节点是否显示
 * @param show 是否显示
 * @param name 节点名称
 */
private showBoneByName(show:boolean,name:string){
    let bones=this.selfBones.armature().getBones()
    for(let i=0;i<bones.length;i++){
        let info=bones[i]
        if(info.name==name){
            info.visible=show
            break
        }
    }
}