示例#1
0
    public void SetStateAndAnimationNetwork(E_ANIMATION _ANIMATION, float _Duration, float _Speed, float _FreezeTime, bool _IsCharing = false)
    {
        switch (_ANIMATION)
        {
        case E_ANIMATION.IDLE:
            SetCharacterState(E_STATE.IDLE, _IsCharing, true);
            break;

        case E_ANIMATION.WALK:
        case E_ANIMATION.RUN:
            SetCharacterState(E_STATE.MOVE, _IsCharing, true);
            break;

        case E_ANIMATION.ATTACK:
            SetCharacterState(E_STATE.ATTACK, _IsCharing, true);
            break;

        case E_ANIMATION.SPECIAL1:
        case E_ANIMATION.SPECIAL2:
        case E_ANIMATION.SPECIAL3:
        case E_ANIMATION.SPECIAL4:
        case E_ANIMATION.SPECIAL5:
        case E_ANIMATION.SPECIAL6:
            SetCharacterState(E_STATE.SPECIAL, _IsCharing, true);
            break;

        case E_ANIMATION.HIT:
            SetCharacterState(E_STATE.SPECIAL, _IsCharing, true);
            break;
        }

        PlayAnimation(_ANIMATION, _Duration, _Speed, _FreezeTime, true);
    }
示例#2
0
 public void PlayAnimation(E_ANIMATION _ANIMATION, float _Duration, float _Speed, float _FreezeTime, bool _Network = true)
 {
     if (PhotonNetwork.InRoom && _Network)
     {
         if (m_PhotonView.IsMine)
         {
             m_PhotonView.RPC("PlayAnimation_RPC", RpcTarget.All, (int)_ANIMATION, _Duration, _Speed, _FreezeTime);
         }
     }
     else
     {
         PlayAnimation_RPC((int)_ANIMATION, _Duration, _Speed, _FreezeTime);
     }
 }
示例#3
0
    public void PlayAnimation_RPC(int _ANIMATION, float _Duration, float _Speed, float _FreezeTime)
    {
        if (_FreezeTime > 0.0f)
        {
            SetFreeze(_FreezeTime);
        }

        if (!m_Animator)
        {
            return;
        }

        m_Animator.speed = _Speed;
        E_ANIMATION anim = (E_ANIMATION)_ANIMATION;

        if (anim != E_ANIMATION.RUN)
        {
            m_Animator.SetBool("Run", false);
        }
        else
        {
            m_Animator.SetBool("Run", true);
        }

        switch (anim)
        {
        case E_ANIMATION.IDLE:
            m_Animator.CrossFade("Idle", _Duration);
            break;

        case E_ANIMATION.WALK:
            m_Animator.CrossFade("Walk", _Duration);
            break;

        case E_ANIMATION.RUN:
            m_Animator.CrossFade("Run", _Duration);
            break;

        case E_ANIMATION.DEAD:
        {
            m_Live        = E_LIVE.DEAD;
            m_IsCharging  = false;
            m_FreezeTimer = 0.0f;
            m_Animator.CrossFade("Dead", _Duration);
        }
        break;

        case E_ANIMATION.ATTACK:
        {
            m_Animator.CrossFade(m_AttackAniKey[m_AttackAniNumber], _Duration);
            if (m_AttackAniKey.Length > 1)
            {
                if (m_AttackAniNumber + 1 >= m_AttackAniKey.Length)
                {
                    m_AttackAniNumber = 0;
                }
                else
                {
                    m_AttackAniNumber++;
                }
            }
            m_AttackDelayTimer = 1.0f / m_AttackSpeed + m_AttackAfterDelay;
            SetFreeze(m_AttackDelayTimer);
            m_Animator.speed = 1.0f * m_AttackSpeed;

            m_AttackLevelConnetTimer = m_AttackDelayTimer + 0.5f;
        }
        break;

        case E_ANIMATION.SPECIAL1:
            m_Animator.CrossFade("Special1", _Duration);
            break;

        case E_ANIMATION.SPECIAL2:
            m_Animator.CrossFade("Special2", _Duration);
            break;

        case E_ANIMATION.SPECIAL3:
            m_Animator.CrossFade("Special3", _Duration);
            break;

        case E_ANIMATION.SPECIAL4:
            m_Animator.CrossFade("Special4", _Duration);
            break;

        case E_ANIMATION.SPECIAL5:
            m_Animator.CrossFade("Special5", _Duration);
            break;

        case E_ANIMATION.SPECIAL6:
            m_Animator.CrossFade("Special6", _Duration);
            break;

        case E_ANIMATION.HIT:
            m_Animator.CrossFade("HIT", _Duration);
            break;
        }
    }