Пример #1
0
    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));
    }
Пример #2
0
    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>();
            }
        }
    }
Пример #3
0
 public override void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
 {
     damageableBeing = animator.GetComponent <DamageableBeing2D>();
 }