public void PlayAnimContinueFrames(UnitAnim unitAnim, float frameRateModModifier) { //Play new anim starting from same frames lastUnitAnim = unitAnim; alreadyLooped = false; // Dynamic anim if (skeletonUpdater is V_Skeleton_Updater) { // Continuing from normal updater V_Skeleton_Updater newSkeletonUpdater = new V_Skeleton_Updater(mesh, unitAnim.GetAnims(), frameRateMod, frameRateModModifier, onAnimTrigger, OnAnyAnimTrigger); newSkeletonUpdater.SetFramesToSame((skeletonUpdater as V_Skeleton_Updater).GetAnims()); skeletonUpdater = newSkeletonUpdater; } else { // Previous was cached updater, ignore continue frames skeletonUpdater = new V_Skeleton_Updater(mesh, unitAnim.GetAnims(), frameRateMod, frameRateModModifier, onAnimTrigger, OnAnyAnimTrigger); } }
public void PlayAnimContinueFrames(UnitAnim unitAnim, float frameRateModModifier, OnAnimComplete onAnimComplete, OnAnimTrigger onAnimTrigger, OnAnimInterrupted onAnimInterrupted) { //Play new anim starting from same frames if (this.onAnimInterrupted != null) { OnAnimInterrupted tmpAnimInterrupted = this.onAnimInterrupted; this.onAnimInterrupted = null; tmpAnimInterrupted(lastUnitAnim, unitAnim, alreadyLooped); if (OnAnyAnimInterrupted != null) { OnAnyAnimInterrupted(lastUnitAnim, unitAnim, alreadyLooped); } } this.onAnimComplete = onAnimComplete; this.onAnimTrigger = onAnimTrigger; this.onAnimInterrupted = onAnimInterrupted; lastUnitAnim = unitAnim; alreadyLooped = false; // Dynamic anim if (skeletonUpdater is V_Skeleton_Updater) { // Continuing from normal updater V_Skeleton_Updater newSkeletonUpdater = new V_Skeleton_Updater(mesh, unitAnim.GetAnims(), frameRateMod, frameRateModModifier, onAnimTrigger, OnAnyAnimTrigger); newSkeletonUpdater.SetFramesToSame((skeletonUpdater as V_Skeleton_Updater).GetAnims()); skeletonUpdater = newSkeletonUpdater; } else { // Previous was cached updater, ignore continue frames skeletonUpdater = new V_Skeleton_Updater(mesh, unitAnim.GetAnims(), frameRateMod, frameRateModModifier, onAnimTrigger, OnAnyAnimTrigger); } }