using System.Collections;
public class TowerAttack : MonoBehaviour {
public float timeBetweenAttacks = 0.5f;
public int attackDamage = 10;
GameObject player;
PlayerHealth playerHealth;
bool playerInRange;
float timer;
void Awake()
{
player = GameObject.FindGameObjectWithTag ("Player");
playerHealth = player.GetComponent<PlayerHealth>();
}
void OnTriggerEnter(Collider other)
{
print (other);
if (other.gameObject == player)
playerInRange = true;
}
void OnTriggerExit(Collider other)
{
if (other.gameObject == player)
playerInRange = false;
}
// Update is called once per frame
void Update() {
timer += Time.deltaTime;
if (timer >= timeBetweenAttacks && playerInRange)
Attack();
if (playerHealth.currentHealth <= 0)
print ("Player's dead");
}
void Attack()
{
timer = 0f;
print (playerHealth);
if (playerHealth.currentHealth > 0)
playerHealth.TakeDamage (attackDamage);
}
}
Я использую этот код для объекта, называемого башней, и имеет полевой коллайдер с активным istrigger. На поле появляются несколько объектов с прикрепленным скриптом «PlayerHealth» и помечены как «Player». Однако только первый «Игрок», который входит в коллайдер box, получает свое здоровье, а остальные объекты «Player» остаются здоровыми.Как удалить здоровье нескольких врагов?