コード例 #1
0
    IEnumerator DidAttack() // attack animation
    {
        animator.SetBool("Attack01", true);
        yield return(new WaitForSeconds(1.0f));

        animator.SetBool("Attack01", false);

        ourLocation = transform.TransformPoint(attackPosition);
        enemies     = GameObject.FindGameObjectsWithTag("enemy");

        foreach (GameObject enemy in enemies)
        {
            Status_EBunny enemyStatus = enemy.GetComponent <Status_EBunny>();
            if (enemyStatus == null)
            {
                continue;
            }

            if (Vector3.Distance(enemy.transform.position, ourLocation) < attackRadius)
            {
                enemyStatus.ApplyDamage(damage);
            }
        }

        isBusy = false;
    }
コード例 #2
0
 // Update is called once per frame
 void Update()
 {
     HideEnemyHub();
     closestEnemy = playerAttackController.GetClosestEnemy();
     if (closestEnemy != null)
     {
         distanceToClosestEnemy = Vector3.Distance(closestEnemy.transform.position, player.transform.position);
         if (distanceToClosestEnemy < 20)
         {
             ShowEnemyHub();
             enemyStatus     = closestEnemy.GetComponent <Status_EBunny>();
             HealthBar.value = enemyStatus.health / enemyStatus.maxHealth;
             Debug.Log(HealthBar.value);
         }
     }
     else
     {
         HideEnemyHub();
     }
 }