private void SetUnitAnimationState(SetUnitAnimationStateMessage msg) { if (_animationState != msg.State) { _animationState = msg.State; _animationController.Animator.SetFloat(UNIT_ANIMATION_STATE, (float)_animationState); _animationController.Animator.Play(0); } }
// Sets the property to true and other properties to false private void SetProperty(UnitAnimationState state) { if (mAnimator == null) return; // state is already set, no need to continue if (mAnimationStates[state]) return; string property = state.ToString (); foreach (UnitAnimationState s in mAnimationStates.Keys.ToList()) { mAnimator.SetBool (s.ToString (), false); mAnimationStates [s] = false; } mAnimator.SetBool (property, true); mAnimationStates [state] = true; }
// Sets the property to true and other properties to false private void SetProperty(UnitAnimationState state) { if (mAnimator == null) { return; } // state is already set, no need to continue if (mAnimationStates[state]) { return; } string property = state.ToString(); foreach (UnitAnimationState s in mAnimationStates.Keys.ToList()) { mAnimator.SetBool(s.ToString(), false); mAnimationStates [s] = false; } mAnimator.SetBool(property, true); mAnimationStates [state] = true; }
public void LateUpdate() { switch (currentState) { case UnitAnimationState.Idle: animation.CrossFade(idleAnimation, animationFadeTime); if (speed > runThreshold) { currentState = UnitAnimationState.Running; } else if (inCombat) { currentState = UnitAnimationState.CombatIdle; } break; case UnitAnimationState.CombatIdle: animation.CrossFade(combatIdleAnimation, animationFadeTime); if (speed > runThreshold) { currentState = UnitAnimationState.Running; } else if (!inCombat) { currentState = UnitAnimationState.Idle; } break; case UnitAnimationState.Running: animation.CrossFade(runAnimation, animationFadeTime); if (speed < runThreshold) { if (inCombat) { currentState = UnitAnimationState.CombatIdle; } else { currentState = UnitAnimationState.Idle; } } break; case UnitAnimationState.Flying: animation.CrossFade(flyAnimation, animationFadeTime); if (ySpeed < fallThreshold) { currentState = UnitAnimationState.Falling; } break; case UnitAnimationState.Falling: animation.CrossFade(fallAnimation, animationFadeTime); if (ySpeed > fallThreshold) { currentState = UnitAnimationState.Idle; animation.CrossFade(landAnimation, animationFadeTime); } break; default: //do nothin' break; } if (die) { die = false; currentState = UnitAnimationState.Dead; animation.CrossFade(deathAnimation, animationFadeTime); } if (revive) { revive = false; currentState = UnitAnimationState.Idle; } if (attack) { attack = false; animation.CrossFade(attackAnimation, animationFadeTime); } if (jump) { jump = false; currentState = UnitAnimationState.Flying; animation.CrossFade(jumpAnimation, animationFadeTime); } if (castAbility >= 0) { animation.CrossFade(abilityAnimations[castAbility], animationFadeTime); castAbility = -1; } }
public void SetState(UnitAnimationState state) { // Debug.Log(state); _stateToActionMap [state](); }