public V_Skeleton_Updater(Mesh mesh, V_Skeleton_Anim[] loadAnims, float frameRateMod, float frameRateModModifier, V_UnitSkeleton.OnAnimTrigger onAnimTrigger, V_UnitSkeleton.OnAnimTrigger OnAnyAnimTrigger, int id = -1) { this.mesh = mesh; this.id = id; List <V_Skeleton_Anim> tmpAnims = new List <V_Skeleton_Anim>(); hasVariableSortingOrder = false; for (int i = 0; i < loadAnims.Length; i++) { V_Skeleton_Anim clone = loadAnims[i].Clone(); if (!hasVariableSortingOrder && clone.HasVariableSortingOrder()) { hasVariableSortingOrder = true; } clone.SetFrameRateMod(frameRateMod * frameRateModModifier); clone.onAnimTrigger = onAnimTrigger; clone.onAnimTrigger += OnAnyAnimTrigger; tmpAnims.Add(clone); } bodyPartNameAnimDic = new Dictionary <string, V_Skeleton_Anim>(); anims = tmpAnims.ToArray(); foreach (V_Skeleton_Anim anim in anims) { bodyPartNameAnimDic[anim.bodyPart.customName] = anim; } animsLength = anims.Length; verticesArr = new Vector3[animsLength * 4]; uvsArr = new Vector2[animsLength * 4]; trianglesArr = new int[animsLength * 6]; Play(); }
public void PlayAnim(UnitAnimType animType, int angle, float frameRateMod, V_UnitSkeleton.OnAnimComplete onAnimComplete, V_UnitSkeleton.OnAnimTrigger onAnimTrigger, V_UnitSkeleton.OnAnimInterrupted onAnimInterrupted) { // Ignores if same animType, same angle and same frameRateMod // 8 angles if (animType == activeAnimType && activeAngle == angle) { // Same anim, same angle return; } else { if (animType != activeAnimType) { // Different anim, same angle } else { // Different angle, same anim } } PlayAnimForced(animType, angle, frameRateMod, onAnimComplete, onAnimTrigger, onAnimInterrupted); }
public void PlayAnim(UnitAnim unitAnim, V_UnitSkeleton.OnAnimComplete onAnimComplete, V_UnitSkeleton.OnAnimTrigger onAnimTrigger) { playerBase.GetUnitAnimation().PlayAnim(unitAnim, 1f, onAnimComplete, onAnimTrigger, null); }
public void PlayAnim(UnitAnimType animType, Vector3 dir, float frameRateMod, V_UnitSkeleton.OnAnimComplete onAnimComplete, V_UnitSkeleton.OnAnimTrigger onAnimTrigger, V_UnitSkeleton.OnAnimInterrupted onAnimInterrupted) { int angle = GetAngleFromVector(dir); PlayAnim(animType, angle, frameRateMod, onAnimComplete, onAnimTrigger, onAnimInterrupted); }
public void PlayAnim(UnitAnimType animType, float frameRateMod, V_UnitSkeleton.OnAnimComplete onAnimComplete, V_UnitSkeleton.OnAnimTrigger onAnimTrigger, V_UnitSkeleton.OnAnimInterrupted onAnimInterrupted) { PlayAnim(animType, activeAngle, frameRateMod, onAnimComplete, onAnimTrigger, onAnimInterrupted); }
public void UpdateAnim(UnitAnimType animType, int angle, float frameRateMod, V_UnitSkeleton.OnAnimComplete onAnimComplete, V_UnitSkeleton.OnAnimTrigger onAnimTrigger, V_UnitSkeleton.OnAnimInterrupted onAnimInterrupted) { // Update animation if different angle if (animType == activeAnimType) { // Same anim, check angle if (activeAngle == angle) { // Same angle, ignore return; } else { // Different angle activeAngle = angle; UnitAnim unitAnim = activeAnimType.GetUnitAnim(activeAngle); activeAnim = unitAnim; unitSkeleton.PlayAnimContinueFrames(unitAnim, frameRateMod, onAnimComplete, onAnimTrigger, onAnimInterrupted); } } else { // Different anim PlayAnim(animType, angle, frameRateMod, onAnimComplete, onAnimTrigger, onAnimInterrupted); } }
public void PlayAnimForced(UnitAnim unitAnim, float frameRateMod, V_UnitSkeleton.OnAnimComplete onAnimComplete, V_UnitSkeleton.OnAnimTrigger onAnimTrigger, V_UnitSkeleton.OnAnimInterrupted onAnimInterrupted) { // Forcefully play animation no matter what is currently playing activeAnimType = unitAnim.GetUnitAnimType(); activeAnim = unitAnim; unitSkeleton.PlayAnim(unitAnim, frameRateMod, onAnimComplete, onAnimTrigger, onAnimInterrupted); }
public void PlayAnim(UnitAnim unitAnim, float frameRateMod, V_UnitSkeleton.OnAnimComplete onAnimComplete, V_UnitSkeleton.OnAnimTrigger onAnimTrigger, V_UnitSkeleton.OnAnimInterrupted onAnimInterrupted) { // Ignores if same animType, same angle and same frameRateMod if (unitAnim == activeAnim) { // Same anim, same angle return; } PlayAnimForced(unitAnim, frameRateMod, onAnimComplete, onAnimTrigger, onAnimInterrupted); }