Files
CastleDefence/Assets/Scripts/Towers/Tower.cs

42 lines
1.3 KiB
C#

using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Rendering;
public class Tower : MonoBehaviour
{
public float range;
[SerializeField] private LayerMask whatIsEnemy;
private Collider[] collidersInRange;
public List<EnemyController> enemiesInRange = new List<EnemyController>();
private float checkCounter;
[SerializeField] private float checkTime = .2f;
[HideInInspector] public bool enemiesUpdated;
// Start is called once before the first execution of Update after the MonoBehaviour is created
void Start()
{
checkCounter = checkTime;
}
// Update is called once per frame
void Update()
{
enemiesUpdated = false;
checkCounter -= Time.deltaTime;
if (checkCounter <= 0f)
{
checkCounter = checkTime;
collidersInRange = Physics.OverlapSphere(transform.position, range, whatIsEnemy);
enemiesInRange.Clear();
foreach (Collider collider in collidersInRange)
{
if (collider.gameObject.GetComponent<EnemyController>() != null)
{
enemiesInRange.Add(collider.GetComponent<EnemyController>());
}
}
enemiesUpdated = true;
}
}
}