//public void SetAttackEnabled(bool value) { // is_enabled = value; //} private void Update() { //if (!is_enabled) // return; if (!brain || !brain.IsBrainEnabled()) { return; } attack_cooldown_remain = Mathf.Max(0f, attack_cooldown_remain - Time.deltaTime); if (CanAttack()) { ContactFilter2D filter = new ContactFilter2D(); List <Collider2D> results = new List <Collider2D>(); melee_collider.OverlapCollider(filter, results); GameObject player_object = null; results.ForEach((other) => { var player_compnent = other.gameObject.GetComponent <PlayerCharacter>(); if (player_compnent) { player_object = player_compnent.gameObject; } }); if (player_object != null) { last_attacked_transform = player_object.transform; animator.SetTrigger("bite"); var health_component = player_object.GetComponent <HealthComponent>(); health_component.ChangeHealth(attack_health_change); attack_cooldown_remain = attack_cooldown; } } if (animator.GetCurrentAnimatorStateInfo(0).IsName("bite_anim_01") && last_attacked_transform) { var bite_sprites = transform.Find("bite_sprites"); bite_sprites.transform.position = last_attacked_transform.position + (transform.position - last_attacked_transform.position) / 2f; } }