Spine(Unity)

这篇具有很好参考价值的文章主要介绍了Spine(Unity)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Spine动画  skeletonAnimation.state 

1.当前动画播放完毕后自动播放下一个动画

SkeletonGraphic spine_ = new SkeletonGraphic();
spine_.AnimationState.SetAnimation(0, "start", false);
spine_.AnimationState.AddAnimation(0, "idle", true, 0);
		public static void PlaySpine(GameObject obj, string name, Action callback = null) {
			var ske = obj.GetComponent<Spine.Unity.SkeletonGraphic>();
			if (ske == null) {
				return;
			}

			var state = ske.AnimationState;
			state.SetAnimation(0, name, false);

			if (callback != null) {
				Spine.AnimationState.TrackEntryDelegate onComplete = null;
				onComplete = delegate {
					state.Complete -= onComplete;
					callback();
				};
				state.Complete += onComplete;
			}
		}

		public static void PlaySpine(GameObject obj, string name, bool loop) {
			var ske = obj.GetComponent<Spine.Unity.SkeletonGraphic>();
			if (ske == null) {
				return;
			}

			var state = ske.AnimationState;
			state.SetAnimation(0, name, loop);
		}

		public static void SpineEvent(GameObject obj, Action<Event> callback = null) {
			var ske = obj.GetComponent<Spine.Unity.SkeletonGraphic>();
			if (ske == null) {
				return;
			}

			if (callback == null) {
				return;
			}

			Spine.AnimationState.TrackEntryEventDelegate onEvent = delegate (TrackEntry entry, Event e) { callback(e); };
			ske.AnimationState.Event += onEvent;
		}

2.自动动画补偿问题

1)由于spine在切换动画的时候自动补偿,用于动画的平稳过度。但是会导致残影等bug,这时候需要在SetAnimation前调用
skeletonAnimation.skeleton.SetToSetupPose ();
spineAnimationState.ClearTracks ();    或 skeletonGraphic.AnimationState.ClearTracks();
来消除前一个动画的影响。

2)也可以执行重置spine

在播放下一个动画前调用:    skeletonGraphic.Initialize(true);

3.事件

skeletonAnimation.state.Start:开始播放
skeletonAnimation.state.End:动画被清除或者中断
skeletonAnimation.state.Interrupt:动画被打断
skeletonAnimation.state.Complete:播放结束
skeletonAnimation.state.Event:用户自定义事件

事件设置采用lambda表达式:

skeletonAnimation.state.Complete += (state, trackIndex,loopCount) => {
Debug.log("");
};

4.动态获取slot的坐标:
Vector3 pos = skeletonAnimation.skeleton.FindSlot("hat_1").Bone.GetWorldPosition(transform);

Spine之SkeletonGraphic与Button并存

Spine(Unity),Unity,spine,unity,游戏引擎

重置动画:Initialize

Spine.Unity.SkeletonGraphic skeleton;
skeleton.Initialize(true);

Refrence:

Unity Spine动画常用API_skeletonanimation_AT巡礼的博客-CSDN博客文章来源地址https://www.toymoban.com/news/detail-516169.html

到了这里,关于Spine(Unity)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • unity spine 进阶使用

    在项目实践中,我们常常遇到收集金币,钻石等这样的特效需求,最初我们也是全靠代码实现,效果总是差点,偶然和我们动画师聊天确定了一种新的实现方案。 大概流程是动画师在spine软件中实现炸金币+飞金币的过程 输出文件给到程序,程序需要在代码中动态修改节点位

    2023年04月08日
    浏览(72)
  • Spine(Unity)

    1.当前动画播放完毕后自动播放下一个动画 2.自动动画补偿问题 1)由于spine在切换动画的时候自动补偿,用于动画的平稳过度。但是会导致残影等bug,这时候需要在SetAnimation前调用 skeletonAnimation.skeleton.SetToSetupPose (); spineAnimationState.ClearTracks ();    或 skeletonGraphic.AnimationState

    2024年02月11日
    浏览(44)
  • Unity——Spine动画的使用

    Spine是一个收费的跨平台的2D骨骼动画制作工具。 官方地址:http://zh.esotericsoftware.com/ Spine导出的资源有3个文件 .json 存储骨骼信息 .png 使用的图片图集 .atlas.txt 图片在图集中的位置信息 当我们把这三个资源导入到已经引入了Spine运行库的Unity工程后会自动为我们生成 _Atlas 材质

    2024年02月02日
    浏览(60)
  • 随笔-Unity中修改Spine材质

            我们在Unity中使用Spine动画时,往往需要在材质上添加一些效果,比如描边、闪光等等。              这些效果其实在Spine插件中就给我们提供好了对应的Shader,路径分别是: Spine/Outline/Skeleton、Spine/Skeleton Fill。 虽然有插件上给我提供好了这些常用的Shader,单独

    2024年02月11日
    浏览(51)
  • Unity 2D Spine 外发光实现思路

    前言 对于3D骨骼,要做外发光可以之间通过向法线方向延申来实现。 但是对于2D骨骼,各顶点的法线没有向3D骨骼那样拥有垂直于面的特性,那我们如何做2D骨骼的外发光效果呢? 理论基础 我们要知道,要实现外发光效果,首先得先实现外描边效果。对于2D图片的描边实现有

    2024年02月22日
    浏览(41)
  • 如何将spine的素材导入unity

    最近做项目,想将少前里的小人素材导入到unity里,于是乎便去捣鼓了一下,随便记录一下方便以后查看。 第一步:将素材导入spine(如果你已经有素材了,直接跳到第二步即可) 这里参考b站的一个教程:【少前/教程/小人动画】3分钟学会如何提取少前小人制作小人动画_哔

    2024年02月09日
    浏览(45)
  • Unity 如何导入二进制Spine文件

    总是忘记Spine导出二进制到Unity的设置,记录一下。 TIP 此教程只满足URP渲染管线与Linear颜色空间的需求 纹理打包器也修改一下拓展名(日常操作) 修改图集扩展名 不要 勾选图集的 预乘Alpha ,勾选 溢出 修改图集扩展名 .atlas.txt 可导出以下几种文件 Default Shader 设置为 Univer

    2024年02月07日
    浏览(38)
  • Spine动画导入unity后有白边的解决方法

     可以看官方视频[spine-unity] 常见导入问题解答_哔哩哔哩_bilibili 里面第四个问题就是讲的这个 如果你的spine文件导出用的是默认的情况,那么在导入unity后就有可能会出现透明贴图出现白边的情况 如下 此时先打开导入的图片文件  将右侧的sRGB选项取消选中(官方视频是这么

    2024年02月04日
    浏览(50)
  • Unity Spine 3.8 (URP) 踩坑(Shader报错修改)

    今天搜索spine优化,看到一篇文章项目导入多个Spine动画 合批 降低DrawCall -- UWA问答 | 游戏开发者互动问答社区 | 侑虎科技 提供了新思路,打算尝试一下URP。但美术使用的spine版本是3.8,项目用的Unity2021.3.11f1c2,直接导入spine URP包,shader报错:half4 不能转成 SurfaceData2D;遂改下

    2024年02月12日
    浏览(47)
  • 快速解决Spine动画导入Unity后需要设置Straight Alpha Texture的问题

    在导入Spine资源后,Unity会根据不同的后缀,自动化构建出不同格式的资源。导入后,会发现播放的动画和导入前的动画的图片不一样。这时上网查基本都是需要手动吧材质资源的Straight Alpha Texture 勾上。 查看材质的Shader可以看出这个选项是用来选择颜色是否加了透明度的计算

    2024年02月16日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包