Ejemplo n.º 1
0
 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;
    }
Ejemplo n.º 3
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;
    }
    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;
        }
    }
Ejemplo n.º 5
0
    public void SetState(UnitAnimationState state)
    {
//        Debug.Log(state);
        _stateToActionMap [state]();
    }