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); }
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); } }
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; } }