public static IEnumerator IEPlay(this SkeletonAnimation skeleton, string animationToSet, bool isLoop, Spine.AnimationState.TrackEntryDelegate OnComplete = null, Spine.AnimationState.TrackEntryEventDelegate OnEvent = null) { TrackEntry trackEntry; if (skeleton.AnimationName != animationToSet) { skeleton.AnimationName = animationToSet; skeleton.AnimationState.ClearTrack(0); trackEntry = skeleton.AnimationState.SetAnimation(0, animationToSet, isLoop); } else { trackEntry = skeleton.AnimationState.AddAnimation(0, animationToSet, isLoop, 0); } if (OnEvent != null) { trackEntry.Event += OnEvent; } if (OnComplete != null) { trackEntry.Complete += OnComplete; } yield return(new WaitForSeconds(trackEntry.AnimationTime)); }
public static void PlayFromStart(this SkeletonGraphic skeleton, string animationToSet, bool isLoop, Spine.AnimationState.TrackEntryDelegate OnComplete = null, Spine.AnimationState.TrackEntryEventDelegate OnEvent = null) { TrackEntry trackEntry; if (skeleton.AnimationState != null) { if (skeleton.Skeleton == null) { skeleton.Initialize(true); } skeleton.startingAnimation = animationToSet; skeleton.AnimationState.ClearTrack(0); trackEntry = skeleton.AnimationState.SetAnimation(0, animationToSet, isLoop); if (OnEvent != null) { trackEntry.Event += OnEvent; } if (OnComplete != null) { trackEntry.Complete += OnComplete; } } }
public static void Play(this SkeletonAnimation skeleton, string animationToSet, bool isLoop, Spine.AnimationState.TrackEntryDelegate OnComplete = null, Spine.AnimationState.TrackEntryEventDelegate OnEvent = null) { TrackEntry trackEntry; if (skeleton.AnimationName != animationToSet) { skeleton.AnimationName = animationToSet; skeleton.AnimationState.ClearTrack(0); trackEntry = skeleton.AnimationState.SetAnimation(0, animationToSet, isLoop); } else { trackEntry = skeleton.AnimationState.AddAnimation(0, animationToSet, isLoop, 0f); } if (OnEvent != null) { trackEntry.Event += OnEvent; } if (OnComplete != null) { trackEntry.Complete += OnComplete; } }
static int set_Event(IntPtr L) { try { Spine.TrackEntry obj = (Spine.TrackEntry)ToLua.CheckObject(L, 1, typeof(Spine.TrackEntry)); EventObject arg0 = null; if (LuaDLL.lua_isuserdata(L, 2) != 0) { arg0 = (EventObject)ToLua.ToObject(L, 2); } else { return(LuaDLL.luaL_throw(L, "The event 'Spine.TrackEntry.Event' can only appear on the left hand side of += or -= when used outside of the type 'Spine.TrackEntry'")); } if (arg0.op == EventOp.Add) { Spine.AnimationState.TrackEntryEventDelegate ev = (Spine.AnimationState.TrackEntryEventDelegate)arg0.func; obj.Event += ev; } else if (arg0.op == EventOp.Sub) { Spine.AnimationState.TrackEntryEventDelegate ev = (Spine.AnimationState.TrackEntryEventDelegate)arg0.func; obj.Event -= ev; } return(0); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }
static int set_Event(IntPtr L) { try { Spine.TrackEntry obj = (Spine.TrackEntry)ToLua.CheckObject(L, 1, typeof(Spine.TrackEntry)); EventObject arg0 = null; if (LuaDLL.lua_isuserdata(L, 2) != 0) { arg0 = (EventObject)ToLua.ToObject(L, 2); } else { return(LuaDLL.luaL_throw(L, "The event 'Spine.TrackEntry.Event' can only appear on the left hand side of += or -= when used outside of the type 'Spine.TrackEntry'")); } if (arg0.op == EventOp.Add) { Spine.AnimationState.TrackEntryEventDelegate ev = (Spine.AnimationState.TrackEntryEventDelegate)DelegateFactory.CreateDelegate(typeof(Spine.AnimationState.TrackEntryEventDelegate), arg0.func); obj.Event += ev; } else if (arg0.op == EventOp.Sub) { Spine.AnimationState.TrackEntryEventDelegate ev = (Spine.AnimationState.TrackEntryEventDelegate)LuaMisc.GetEventHandler(obj, typeof(Spine.TrackEntry), "Event"); Delegate[] ds = ev.GetInvocationList(); LuaState state = LuaState.Get(L); for (int i = 0; i < ds.Length; i++) { ev = (Spine.AnimationState.TrackEntryEventDelegate)ds[i]; LuaDelegate ld = ev.Target as LuaDelegate; if (ld != null && ld.func == arg0.func) { obj.Event -= ev; state.DelayDispose(ld.func); break; } } arg0.func.Dispose(); } return(0); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }
//=============================================================== #region Skeleton Graphic Animation public static void Play(this SkeletonGraphic skeleton, string animationToSet, bool isLoop, Spine.AnimationState.TrackEntryDelegate OnComplete = null, Spine.AnimationState.TrackEntryEventDelegate OnEvent = null) { TrackEntry trackEntry; if (skeleton.AnimationState != null) { if (skeleton.Skeleton == null) { skeleton.Initialize(true); } bool hasAnim = false; foreach (var anim in skeleton.Skeleton.Data.Animations) { if (anim.Name == animationToSet) { hasAnim = true; } } if (!hasAnim) { return; } if (skeleton.startingAnimation != animationToSet) { skeleton.startingAnimation = animationToSet; skeleton.AnimationState.ClearTrack(0); trackEntry = skeleton.AnimationState.SetAnimation(0, animationToSet, isLoop); } else { trackEntry = skeleton.AnimationState.AddAnimation(0, animationToSet, isLoop, 0f); } if (OnEvent != null) { trackEntry.Event += OnEvent; } if (OnComplete != null) { trackEntry.Complete += OnComplete; } } }