网上买的素材
skeleton.atlas 后缀改为txt skeleton.atlas.txt
图集.png 图片是png的
skeleton.skel 后缀改为.bytes skeleton.skel.bytes
运行库必须和素材要一致,比如素材是3.6,那么素材也是3.6
有白边或者黑边,显示不正常怎么办,将material的alpha/blend
spine
跨平台的2D骨骼动画制作工具
.json 存储了骨骼信息
.png 使用的图片信息
.atlas .txt 图片在图集中的位置信息
当我们把这三个资源导入到已经引入了spine运行库的unity工程后
会自动为我们生成
_Atlas 材质和.atlas.txt文件的引用配置文件
-Material 材质文件
_skeletonData
spine参数相关
Animations 动画
Setup Pose 设置姿势 (还原到默认姿势)
Create Animation Reference Assets 创建动画参考资源
Slots:插槽相关(一个部位有多张图片构成,可以在这预览)
Mix Animation:动画过渡混合
比如idle 到 attack 几秒过渡
导入的spine有边框
在project找到图集文件,在inspector里的 generate mip map 勾掉
或者 alpha is transpare 勾掉
using Spine;
using Spine.Unity;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class spineScript : MonoBehaviour
{
SkeletonAnimation sa;
[SpineAnimation] //动画特性
public string aniName;
[SpineBone] //骨骼特性
public string boneName;
[SpineSlot] //插槽特性
public string ccName;
[SpineAttachment] //附件特性
public string attachName;
// Start is called before the first frame update
void Start()
{
sa = GetComponent<SkeletonAnimation>();
//动画播放 直接改变动画播放参数
//sa.loop = true;
//sa.AnimationName = "run";
//动画状态改变的函数
//参0 索引 参1 动画名字 参2 是否循环
//马上播放
sa.AnimationState.SetAnimation(0, aniName, true);
//等待上一个动画播放完毕后,排队播放
//sa.AnimationState.AddAnimation(0, "walk", true,0);
//转向
//sa.skeleton.ScaleX = -1;
//动画事件
//sa.AnimationState.Start += (t) =>
// {
// print(sa.AnimationName+ "动画开始播放");
// };
////动画被中断或者清除
//sa.AnimationState.End += (t) =>
// {
// print(sa.AnimationName + "动画中断或者清除");
// };
////播放完成
//sa.AnimationState.Complete += (t) =>
//{
// print(sa.AnimationName + "动画播放完成");
//};
////做动画时添加自定义事件
//sa.AnimationState.Event += (t, e) =>
// {
// print(sa.AnimationName + "自定义事件");
// };
//便携特性
//获取骨骼 需要引入命名空间
Bone b= sa.skeleton.FindBone(boneName);
//设置插槽附件
//参1.插槽名字 参2:附加名
//sa.skeleton.SetAttachment(ccName, attachName);
}
// Update is called once per frame
void Update()
{
}
}