private void Move() { if (!isAlive || damageableEnemy == null || sleep) { return; } if (!damageableEnemy.IsAlive()) { damageableEnemy = null; return; } float distanceFromPlayer = Vector2.Distance(damageableEnemy.transform.position, this.gameObject.transform.position); if (distanceFromPlayer > minimalDistanceToAttack) { horizontalMove = (damageableEnemy.transform.position - this.gameObject.transform.position).normalized.x; } else { Attack(); } animator.SetFloat(anim_param_speed, Mathf.Abs(horizontalMove)); }
private void lookForPlayer() { if (damageableEnemy != null || sleep) { return; } Collider2D[] enemies = Physics2D.OverlapCircleAll(this.transform.position, fieldOfView, enemyLayerMask); foreach (Collider2D enemy in enemies) { if (enemy.GetComponent <DamageableBeing2D>().IsAlive()) { damageableEnemy = enemy.GetComponent <DamageableBeing2D>(); } } }
public override void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { damageableBeing = animator.GetComponent <DamageableBeing2D>(); }