83 lines
2.2 KiB
Lua
83 lines
2.2 KiB
Lua
--- 封装一层立绘加载处理方法,在这里扩展立绘处理方法
|
|
--- Generated by EmmyLua(https://github.com/EmmyLua)
|
|
--- Created by Steven Hawking.
|
|
--- DateTime: 2019/11/20 14:21
|
|
---
|
|
|
|
SpineHandle = {}
|
|
SpineHandle.__index = SpineHandle
|
|
|
|
local function LoadAssert(resName, parent, scale, pos)
|
|
if not resName or resName == "" then
|
|
Log("resource can not find ")
|
|
return
|
|
end
|
|
|
|
local live2d = poolManager:LoadLive(resName, parent.transform, scale, pos)
|
|
return live2d
|
|
end
|
|
|
|
|
|
|
|
function SpineHandle:New(resName, parent, scale, pos, initAnim)
|
|
local _o = {}
|
|
_o = {} or _o
|
|
setmetatable(_o, self)
|
|
-- 设置成员属性
|
|
|
|
_o.live2d = LoadAssert(resName, parent, scale, pos)
|
|
_o.graphic = _o.live2d:GetComponent("SkeletonGraphic")
|
|
_o.resName = resName
|
|
|
|
-- 默认循环播放
|
|
_o.graphic.AnimationState:SetAnimation(0, initAnim, true)
|
|
-- 预留字段
|
|
_o.initDone = true
|
|
|
|
return _o
|
|
end
|
|
|
|
------------ 动画资源处理 -----------------------
|
|
--- 设置每次动画播放后的回调
|
|
function SpineHandle:SetCallBack(func)
|
|
if self.graphic and func then
|
|
self.graphic.AnimationState.Complete = self.graphic.AnimationState.Complete + func
|
|
self.callback = func
|
|
end
|
|
end
|
|
|
|
function SpineHandle:SetAnimation(aniName, loop)
|
|
if self.graphic then
|
|
self.graphic.AnimationState:SetAnimation(0, aniName, loop)
|
|
end
|
|
end
|
|
|
|
function SpineHandle:StopAnimation(delay)
|
|
if self.graphic then
|
|
self.graphic.AnimationState:SetEmptyAnimation (0, delay)
|
|
end
|
|
end
|
|
|
|
--------------------------------------------------------------------
|
|
function SpineHandle:SetSlot(slotName, attachmentName)
|
|
if self.graphic then
|
|
--self.graphic.Skeleton:SetAttachment(slotName, attachmentName)
|
|
end
|
|
end
|
|
|
|
function SpineHandle:UnLoadSpine()
|
|
if self.live2d and self.graphic and self.graphic.AnimationState then
|
|
if self.callback then
|
|
self.graphic.AnimationState.Complete = self.graphic.AnimationState.Complete - self.callback
|
|
end
|
|
|
|
poolManager:UnLoadLive(self.resName, self.live2d)
|
|
self.live2d = nil
|
|
self.graphic = nil
|
|
self.callback = nil
|
|
self.initDone = false
|
|
end
|
|
|
|
end
|
|
|
|
return SpineHandle |