3.8版本的附件换装无法生效
代码如下
/**
-
换装
-
@param skeleton Spine 组件
-
@param slotName 插槽名字
-
@param attachmentName 附件名字
-
@param skinName 皮肤名字
*/
setAttachment(skeleton: sp.Skeleton, slotName: string, attachmentName: string, skinName: string | null = null): void {
const skeletonData = skeleton.skeletonData!.getRuntimeData();
if (!skeletonData) {
throw new Error(skeletonData not found: ${skeleton.name}
);
}
// 从指定皮肤中,找到目标附件对象
const skin = skinName ? skeletonData.findSkin(skinName) : skeletonData.defaultSkin;
const slotIndex = skeletonData.findSlotIndex(slotName);
const attachment = skin.getAttachment(slotIndex, attachmentName);// 找到目标插槽并替换为目标附件对象
const slot = skeleton.findSlot(slotName);
if (!slot) {
throw new Error(slot not found: ${slotName}
);
}
slot.setAttachment(attachment);
}