// ====================================================================================== private void UpdateAnimator() { m_animator.SetDirection(m_states[m_actualState].m_facingDir); if (m_states[m_actualState].m_attack) { m_animator.StartAttack(m_states[m_actualState].m_attkType, m_states[m_actualState].m_upAttkDir, false); if (m_watcherToShowWeapon != null) { switch (m_states[m_actualState].m_attkType) { case PlayerAnimatorController.eAttackType.Fists: m_watcherToShowWeapon.Drop(); break; case PlayerAnimatorController.eAttackType.Saber: m_watcherToShowWeapon.PickSaber(); break; case PlayerAnimatorController.eAttackType.Pistol: m_watcherToShowWeapon.PickPistol(); break; } } } else { m_animator.SetState(m_states[m_actualState].m_state); } }
// ====================================================================================== public void Update() { #if UNITY_EDITOR m_useAnimation = m_animator != null; if (!Application.isPlaying) { return; } #endif if (GameMgr.IsGameOver) { return; } float horizontal = 0, vertical = 0; bool doJump = false, doDash = false; if (!isStunned) { // get input horizontal = InputMgr.GetAxis((int)m_player, InputMgr.eAxis.HORIZONTAL); //Input.GetAxis("Horizontal"); vertical = InputMgr.GetAxis((int)m_player, InputMgr.eAxis.VERTICAL); //Input.GetAxis("Vertical"); doJump = InputMgr.GetButton((int)m_player, InputMgr.eButton.JUMP); //Input.GetButtonDown("Jump"); doDash = InputMgr.GetButton((int)m_player, InputMgr.eButton.DASH); //Input.GetButtonDown("Dash"); // get pick up item input if (InputMgr.GetButton((int)m_player, InputMgr.eButton.GRAB) && !grabButtonPressed) { if (WeaponList.Count > 0) { PickupWeapon(); } } grabButtonPressed = InputMgr.GetButton((int)m_player, InputMgr.eButton.GRAB); // get throw item input if (InputMgr.GetButton((int)m_player, InputMgr.eButton.TOSS)) { if (EquippedWeapon != WeaponPickup.WeaponType.FISTS) { ThrowWeapon(); } } // get attack input if (InputMgr.GetButton((int)m_player, InputMgr.eButton.ATTACK) && !isAttacking) { isAttacking = true; switch (EquippedWeapon) { case WeaponPickup.WeaponType.FISTS: PunchAttack(); break; case WeaponPickup.WeaponType.SABER: SaberAttack(); break; case WeaponPickup.WeaponType.PISTOL: PistolAttack(); break; } } } // update position UpdateTransform(horizontal, vertical, doJump, doDash); // OBS: UptadeAnimator MAYBE is OUT OF DATE!!!! // TODO: Test with anims and update if necessary if (m_useAnimation) { m_animator.SetState(m_state); m_animator.SetDirection(m_direction); } }
// ====================================================================================== private void UpdateAnimator() { switch (State) { case eStates.Attack: switch (m_playerAttack.EquipWeap) { case PlayerAttack.eWeapon.Fists: m_playerAnimCtl.StartAttack(PlayerAnimatorController.eAttackType.Fists, m_playerAttack.AttackDirection.y, m_playerCtl.IsJumping); break; case PlayerAttack.eWeapon.Pistol: m_playerAnimCtl.StartAttack(PlayerAnimatorController.eAttackType.Pistol, m_playerAttack.AttackDirection.y, m_playerCtl.IsJumping); break; case PlayerAttack.eWeapon.Saber: m_playerAnimCtl.StartAttack(PlayerAnimatorController.eAttackType.Saber, m_playerAttack.AttackDirection.y, m_playerCtl.IsJumping); break; } break; case eStates.Idle: m_playerAnimCtl.SetState(PlayerAnimatorController.eStates.Idle); break; case eStates.Walking: m_playerAnimCtl.SetState(PlayerAnimatorController.eStates.Walking); break; case eStates.Jumping: m_playerAnimCtl.SetState(PlayerAnimatorController.eStates.Jumping); break; case eStates.Falling: m_playerAnimCtl.SetState(PlayerAnimatorController.eStates.Falling); break; case eStates.WallSliding: m_playerAnimCtl.SetState(PlayerAnimatorController.eStates.WallSliding); break; case eStates.WallEjecting: m_playerAnimCtl.SetState(PlayerAnimatorController.eStates.WallEjecting); // TO DO : Wall Eject break; case eStates.Dashing: m_playerAnimCtl.SetState(PlayerAnimatorController.eStates.Dashing); break; case eStates.Dead: m_playerAnimCtl.SetState(PlayerAnimatorController.eStates.Dead); break; case eStates.Stunned: m_playerAnimCtl.SetState(PlayerAnimatorController.eStates.Stunned); break; } switch (m_playerCtl.ForwardDir) { case PlayerController.eDirection.Left: m_playerAnimCtl.SetDirection(PlayerAnimatorController.eDirections.Left); break; case PlayerController.eDirection.Right: m_playerAnimCtl.SetDirection(PlayerAnimatorController.eDirections.Right); break; } }