为什么?
居然找不到spine api?
根据官方给的demo,想要简单实现一个换装并不难,给个换装源码,如下
/**
* 用外部图片局部换装
* @param sk 骨骼动画
* @param slotName 需要替换的插槽名称
* @param texture 外部图片
*/
public static changeSlot(sk: sp.Skeleton, slotName: string, texture: Texture2D) {
//获取插槽
let slot = sk.findSlot(slotName);
if (!slot)
return;
//获取挂件
let att = slot.attachment as sp.spine.RegionAttachment;
if (!att)
return;
//创建region
let skeletonTexture = new sp.SkeletonTexture({
width: texture.width,
height: texture.height
} as ImageBitmap);
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&&att.setRegion(region)
att.updateOffset&&att.updateOffset();
}
功能能可以实现,但完全不知道其中的门门道道…
比如这个 setRegion 方法的用处和功能, updateOffset 又有何意义
我查了https://docs.cocos.com/creator/3.1/api/zh/classes/spine.skeleton-1.html上面的写的内容完全用不上
spine是cocos很重要的一部分知识,希望有大佬出来指点迷津,关于这个spine的学习从哪开始
