unity游戏开发入门-spine

本文介绍了如何使用Lua代码来控制2D动画库Spine的SkeletonAnimation,包括获取当前播放动画名、时长,播放控制,切换皮肤,调整层级,操作部件,拼接皮肤,以及倒放动画等关键操作。适合对Spine和Lua编程感兴趣的开发者参考。
摘要由CSDN通过智能技术生成

好久没写了,过来写一下,本文章针对代码(示例Lua)控制Spine(一种2D美术资源),这里主要针对SkeletonAnimation形式,说明方式使用代码注释记录。
代码每块全博客衔接
在这里插入图片描述

1.spine当前播放的动画名称

--获取SkeletonAnimation组件
 local skeleton = obj[Spine.Unity.SkeletonAnimation]
 local skeletonName = skeleton.AnimationName

2.spine当前播放的动画时长

local time = skeleton.Skeleton.Data:FindAnimation(skeletonName).Duration

3.spine动画播放控制

--播放动画:trackIndex,要播放的动画名称,是否循环
skeleton.AnimationState:SetAnimation(0, aniName, isLoop)

4.spine资源切换皮肤

同一个spine资源,修改Initial Skin属性

--skinName:皮肤名称-string
skeleton.initialSkinName = skinName
skeleton:Initialize(true)

5.spine切换层级

--levelNum:层级数-int
skeleton.sortingOrder = levelNum

6.spine操作部件

local skeletionRenderSeparator = obj[Spine.Unity.SkeletonRenderSeparator]

--增加部件
--partsName:部件名称-string
skeletionRenderSeparator.SkeletonRenderer:FindAndApplySeparatorSlots(partsName, false, true)

--获取部件
--pareName:部件的编号
skeletionRenderSeparator.partsRenderers[partNum].MeshRenderer

7.拼接

通过spine本身的皮肤拼接形成新的皮肤
举例:通过原有的皮肤(”jump“, ”stand“)形成新的皮肤(”run")

--将新皮肤从原有的皮肤复制一份出来
    local newSkin = skeletion.Data:FindSkin("jump") 
    local _skin = skeletion.Data:FindSkin(”stand“)
 --将皮肤混合
    newSkin:AddSkin(_skin)
  --将新皮肤进行应用
    skeletion:SetSkin(newSkin)
    skeletion:SetSlotsToSetupPose()

8.倒放动画

--将当前spine播放动画的起始帧与结束帧同步
    skeleton.AnimationState:GetCurrent(0).AnimationStart = 
    skeleton.AnimationState:GetCurrent(0).AnimationEnd
--播放速度反向
    skeleton.timeScale = -1 
 --延时处理后恢复动画播放速度并执行回调
    Timer.call(time, function ()
        skeleton.timeScale = 1
        --回调
        fun()
    end)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值