Unity Spine插件使用
Unity Spine插件使用
Spine是针对游戏开发的2D骨骼动画。Unity本身并不支持播放spine文件需要安装 Unity Spine插件才能支持。
Spine插件下载安装
Spine插件可以再Spine官方文档中找到.
注意:需要确保spine-unity组件包与美术使用的Spine版本能对应上。如果版本无法对应上可能无法正常使用。
版本文件可以在Spine插件目录下的version.txt
找到。 文件内容大概如下:
This Spine-Unity runtime works with data exported from Spine Editor
version: 3.8.xx Package version:
spine-unity-3.8-2020-10-28.unitypackage
Spine资源导入
Spine资源在导出的时候可以选择 Json 格式或者二进制格式。在导出的时候需要进行一些设置,否则需要在SkeletonDataAsset
中手动拖拽Skeleton JSON
和Atlas Assets
.
Json导出
使用Json导出默认是会产生.png
.json
.atlas
这三个文件。 由于Spine插件无法正常识别到.atlas
文件所以我们需要在导出时设置其后缀名为.atlas.txt
(手动改也是可以的)。二进制导出
二进制导出和上面的类似,会生成.png
.skel
.atlas
这三个文件。为了方便Spine插件识别我们需要将其变更为.png
.skel.bytes
.atlas.txt
。
按照上面设置完成后就可以直接从文件夹中拖放到 Unity 的 Project
窗口。
注意:以二进制格式而不是JSON格式导出,会使文件体积更小,加载更快.
Spine资源导入源码
Spine插件中的 SpineEditorUtilities
这个类继承自 AssetPostprocessor. 这样会在我们进行资源导入的时候触发对应函数。 我们可以看到spine插件是在所有资源被导入后调用。
public partial class SpineEditorUtilities : AssetPostprocessor {// ...// Auto-import post process entry point for all assetsstatic void OnPostprocessAllAssets (string[] imported, string[] deleted, string[] moved, string[] movedFromAssetPaths) {// ...AssetUtility.HandleOnPostprocessAllAssets(imported, texturesWithoutMetaFileCopy);// ...}
}
然后在 AssetUtility
这个类中对文件的后缀名进行了处理。 可以从源码看到Spine插件会根据后缀名来识别到是否要进行加载. 我们也可以修改代码来匹配我们需要的后缀名(虽然不太推荐)。
public static class AssetUtility {// ...public static void ImportSpineContent (string[] imported, List<string> texturesWithoutMetaFile,bool reimport = false) {// ...foreach (string str in imported) {string extension = Path.GetExtension(str).ToLower();switch (extension) {case ".atlas":if (SpineEditorUtilities.Preferences.atlasTxtImportWarning) {Debug.LogWarningFormat("`{0}` : If this file is a Spine atlas, please change its extension to `.atlas.txt`. This is to allow Unity to recognize it and avoid filename collisions. You can also set this file extension when exporting from the Spine editor.", str);}break;case ".txt":if (str.EndsWith(".atlas.txt", System.StringComparison.Ordinal))atlasPaths.Add(str);break;case ".png":case ".jpg":imagePaths.Add(str);break;case ".json":var jsonAsset = AssetDatabase.LoadAssetAtPath<TextAsset>(str);if (jsonAsset != null && IsSpineData(jsonAsset, out compatibilityProblemInfo))skeletonPaths.Add(new PathAndProblemInfo(str, compatibilityProblemInfo));break;case ".bytes":if (str.ToLower().EndsWith(".skel.bytes", System.StringComparison.Ordinal)) {if (IsSpineData(AssetDatabase.LoadAssetAtPath<TextAsset>(str), out compatibilityProblemInfo))skeletonPaths.Add(new PathAndProblemInfo(str, compatibilityProblemInfo));}break;}}// ...
}
Unity Spine插件使用相关推荐
- MMD的unity导入插件
2019独角兽企业重金招聘Python工程师标准>>> 存在一个mmd模型的unity导入插件: 导入了mmd的物理,将模型每个部位通过 custom的joint进行连接,设定物理属 ...
- Unity Spine SkeletonGraphic 动画重复播放 过度残影透明渐变Bug 解决方案
Unity Spine SkeletonGraphic 动画重复播放 过度残影透明渐变Bug 解决方案 不推荐使用SetToSetupPose和Setup Pose相关,代码直接贴上 /// < ...
- 使用加密锁加密Unity工程插件源码
使用加密锁加密Unity工程插件源码 最近在unity3D中开发了一款插件,需要卖给客户,但是公司需要隐藏插件的源码,而且保证客户只有指定的电脑才能使用该插件开发!针对这个问题,分为两个步骤:1.隐藏 ...
- Unity网页插件Embedded Browser(ZFBrowser)打包文件无法加载本地网页或网站网址解决方法
Unity网页插件Embedded Browser(ZFBrowser)打包文件无法加载本地网页或网站网址解决方法 问题:最近使用ZFBrowser开发VR嵌入网页发现出现一个问题,在编辑器模式下场景 ...
- Unity常见插件汇总
Unity常见插件汇总 介绍 收集了相关的Unity插件,供大家学习使用,如果用于商业活动,请购买相关版权 插件列表 1. A* Pathfinding Project 一个功能强大并且易于使用的 U ...
- unity spine动画渐变效果(UGUI及fairyGUI )
unity spine动画渐变效果(UGUI及fairyGUI ) 查阅了一些资料,大部分都是直接去修改整个动画的alpha值.比如说spine动画默认shader为 更改成,此时修改shader的a ...
- Unity 常用插件
Unity 常用插件 1.NGUI,算是最常用的UI插件了,下载地址:https://download.csdn.net/download/xiaoyaoACi/21028754 2.FingerGe ...
- unity spine 进阶使用
在项目实践中,我们常常遇到收集金币,钻石等这样的特效需求,最初我们也是全靠代码实现,效果总是差点,偶然和我们动画师聊天确定了一种新的实现方案. 大概流程是动画师在spine软件中实现炸金币+飞金币的过 ...
- Unity 编辑器插件-快速删除组件
尊重原著:(1条消息) Unity 编辑器插件-快速删除组件_unity 删除组件_菜菜ANY的博客-CSDN博客 实现删除所选物体及子物体中指定组件.自动apply 同时考虑一个物体上挂在多个相同组 ...
最新文章
- 【Science】CMU机器学习系主任:八个关键标准判别深度学习任务成功与否
- [算法学习] 线段树,树状数组,数堆,笛卡尔树
- 【SVM】通过SVM对数据进行训练和分类测试,matlab仿真
- Android App Build Workflow
- 207. Course Schedule 课程表
- 再多迷茫,不如静下来好好学习
- collections模块之namedtuple
- Civil 3D 二次开发 新建CLR项目出现错误C2143
- Tasty项目经验总结(不断补充中)
- 移动应用android简单播放器,打造移动掌上影院 Android播放器横评
- 2022.3.14 阿里笔试
- Bluecoat代理设备维护手册
- react上拉加载更多
- 二维码扫描+长按识别二维码demo
- 小程序的发布上线流程
- 鲁棒与最优控制(一)
- php 结合md5的加密,解密方法
- 《数理统计》王晓光答案
- 1813 方块游戏(枚举)
- Linux快捷键不能调节亮度,Linux(Ubuntu)无法调节亮度的终极解决方案(还原Fn组合键调节方法...