Unity Spine


发表于 修改于 Code 328 字 2 分钟

插件名:spine-unity

下载地址:https://zh.esotericsoftware.com/spine-unity-download#%E4%B8%8B%E8%BD%BD

下载对应版本的 unitypackage, 将包拖动到 Assets 中。

下载 UPM 包,解压后放入 Packages 文件夹中。
然后在 Unity 中打开 Package Manager (Window > Package Manager), 选择 + 图标, 单击 Add package from disk…, 选择 package.json 文件.

美术给的文件有:

  • 骨骼动画文件:xxx.json
  • 贴图文件:xxx.atlas
  • 图片文件:xxx.png

将文件放入 Assets/Resources/Spine 目录下。

unity 无法识别 xxx.atlas 文件,打开此文件目录,重命名为 xxx.atlas.txt,回到 unity,会自动生成 Material 和 Atlas.asset 文件

点击 SkeletonData 文件,Inspector 面板中有 Atlas Asset 选项,选择 Atlas.asset 文件。

如果是在 UI 里面展示 Spine, 在节点处右键,Spine/SkeletonGraphic,将 SkeletonData 拖动到 SkeletonGraphic(Unity UI Canvas) SkeletonData Asset 中。

如果展示出的动画有不正常的描边, SkeletonGraphicDefault(Material) Shader 中勾选 Straight Alpha Texture 选项。

SkeletonGraphic 没有 order in layer,在 ui 中也可以试试 SkeletonAnimation,或许也能显示

相关代码:

using System;
using DG.Tweening;
using Spine;
using Spine.Unity;
using UnityEngine;
public class GameManager : MonoBehaviour
{
public GameObject man;
public GameObject game;
SkeletonGraphic skeletonGraphic;
Spine.AnimationState animationState;
void Awake()
{
skeletonGraphic = man.GetComponent<SkeletonGraphic>();
animationState = skeletonGraphic.AnimationState;
animationState.Complete += OnSpineAnimationComplete;
}
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update() { }
void playMan()
{
man.SetActive(true);
// animationState.SetAnimation(0, "run", true);
}
public void OnSpineAnimationComplete(TrackEntry trackEntry)
{
// Add your implementation code here to react to complete events
Debug.Log("Animation completed: " + trackEntry.Animation.Name);
}
}