spine - woodelf-treetop/rcwiki GitHub Wiki
项目中的spine目前都放在Assets\AssetBundle\3Spine2D 目录下。
1.现在同一系列spine(指的是),坐标点需要相同,建议是把坐标点放在spine的最下方

2.数据导出设置为二进制,需要勾选去除X轴空白区,去除Y轴空白区,旋转,别名,忽略空白图片,2的幂数,缩放建议是0.6,边缘填充,limitMemory。图集扩展名需要改为 .atlas.txt 。导出之后,找到二进制文件 后缀名为.skel ,需要加上后缀bytes。

3.建议美术尽量导出一张png图集,限制大小2048,限制长宽是4的倍数
4.当前spine运行库版本为3.6.xx ,限制spine版本号3.6(测试发现spine运行库只能支持相同版本的资源导入)
5.确保spine 动画 同一系列的名称是完全相同的(包括大小写)
6.组件SlotBlendModes 使用,会造成多个dc(一般是5个dc),可以解决美术需要的spine自身透明效果
1.美术给的资源 确保.atlas.txt 和 .skel.bytes ,可以直接导入unity文件夹,在spine2d目录下创建一个spine文件夹,导入资源。untiy会自动生成SkeletonData,选中点击 Create AnimationReferenceAssets,可以具现该spine的动画(现在这些动画是给timeline使用,不用timeline可以不创建)。
2.创建spine预制体,拖拽SkeletonData资源,程序需要和策划,美术确认置入的spine没有奇怪的动画,spine本身层级没有穿插,spine的动画名称有没有统一(有问题需要和制作spine的美术沟通 ,重新制作)

spineMgr:LoadSpineAsset(SkeletonAnimation,spine的name,是否使用遮罩,遮罩名(可填“ ”),func)SkeletonAnimation skeletonAnimation; //gameobject的component。 Spine.AnimationState spineAnimationState = skeletonAnimation.state; Spine.Skeleton skeleton;
spineAnimationState.SetAnimation(0, animationName, true); ——主要就是这个方法来切换动画
切换动画的bug:
由于spine在切换动画的时候自动补偿,用于动画的平稳过度。但是会导致残影等bug,这时候需要在SetAnimation前调用 skeletonAnimation.skeleton.SetToSetupPose (); --这个感觉没什么用,具体看情况吧 spineAnimationState.ClearTracks (); 来消除前一个动画的影响。
添加事件:
skeletonAnimation.state.Start:开始播放 skeletonAnimation.state.End:动画被清除或者中断 skeletonAnimation.state.Interrupt:动画被打断 skeletonAnimation.state.Complete:播放结束 skeletonAnimation.state.Event:用户自定义事件 --spine骨骼动画基本就是这些方法
使用上和Animation骨骼动画相似
遮罩位置需要美术确定真实数值,让策划配置。程序可以拿来直接使用