private void UpdateAttack() { if (inAttack) { if (attackCheck > 0) { attackCheck -= Time.deltaTime; } else { string clipName = Animator.GetCurrentAnimatorClipInfo(0)[0].clip.name; if (clipName != "Slime|Attack 1" && clipName != "Slime|Attack 2") { movementState = MovementState.InPursuit; meleeDamageDealer.SetColliderEnabled(false); inAttack = false; nextMeleeAttack = meleeAttackRest; } } return; } if (nextMeleeAttack > 0) { nextMeleeAttack -= Time.deltaTime; } if (_target != null) { float distance = Vector3.Distance(transform.position, _target.position); if (canMelee && nextMeleeAttack <= 0 && distance <= maxMeleeDist) { movementState = MovementState.MeleeAttack; Animator.SetFloat("Forward", 0); Animator.SetInteger("AttackId", 0); Animator.SetTrigger("Attack"); attackCheck = 0.3f; inAttack = true; meleeDamageDealer.SetColliderEnabled(true); } } }