コード例 #1
0
    void ChangeAnimation(EAniamtion _eNewAnimation)
    {
        if (m_eCurrentAnimation != _eNewAnimation)
        {
            // Check if current animation can be interupted
            if (m_atAnimations[(int)m_eCurrentAnimation].m_bAllowInterupt)
            {
                m_eCurrentAnimation = _eNewAnimation;
                m_eQueuedAnimation  = EAniamtion.INVALID;


                m_oWarlock.animation[m_atAnimations[(int)m_eCurrentAnimation].m_sName].time = 0.0f;
                m_oWarlock.animation.CrossFade(m_atAnimations[(int)m_eCurrentAnimation].m_sName);


                //Debug.Log("Crossfade animation: " + _eNewAnimation.ToString());
            }

            // Queue the animation for when the current animation finishes
            else if (m_eQueuedAnimation != _eNewAnimation)
            {
                m_eQueuedAnimation = _eNewAnimation;


                //Debug.Log("Queued animation: " + _eNewAnimation.ToString());
            }
        }
    }
コード例 #2
0
// Member Functions


    // Public:


    public void NotifyCastSpell(ECastAnimation _eCastAnimation)
    {
        if (!GetComponent <CWarlockHealth>().IsAlive())
        {
            return;
        }


        EAniamtion eCastAnimation = EAniamtion.INVALID;
        int        iRandomNumber  = Random.Range(0, 1000);


        // RANDOM_SPIN_
        if (_eCastAnimation == ECastAnimation.RANDOM_SPIN)
        {
            switch (0)
            {
            case 0:
                eCastAnimation = EAniamtion.SPIN;
                break;
            }
        }

        // RANDOM_SLAM_STAFF
        if (_eCastAnimation == ECastAnimation.SLAM_STAFF)
        {
            switch (0)
            {
            case 0:
                eCastAnimation = EAniamtion.SLAM_STAFF;
                break;
            }
        }


        // RANDOM_RASE_STAFF
        else if (_eCastAnimation == ECastAnimation.RANDOM_RASE_STAFF)
        {
            switch (iRandomNumber % 2)
            {
            case 0:
                eCastAnimation = EAniamtion.RASE_STAFF;
                break;

            case 1:
                eCastAnimation = EAniamtion.RASE_HOLD_STAFF;
                break;
            }
        }

        // RANDOM_CAST
        else if (_eCastAnimation == ECastAnimation.RANDOM_CAST)
        {
            switch (iRandomNumber % 5)
            {
            case 0:
                eCastAnimation = EAniamtion.CAST_1;
                break;

            case 1:
                eCastAnimation = EAniamtion.CAST_2;
                break;

            case 2:
                eCastAnimation = EAniamtion.CAST_3;
                break;

            case 3:
                eCastAnimation = EAniamtion.CAST_4;
                break;

            case 4:
                eCastAnimation = EAniamtion.CAST_5;
                break;
            }
        }


        ChangeAnimation(eCastAnimation);
    }