Working on lession 29
This commit is contained in:
43
Assets/Scripts/Towers/Tower.cs
Normal file
43
Assets/Scripts/Towers/Tower.cs
Normal file
@@ -0,0 +1,43 @@
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Rendering;
|
||||
|
||||
public class Tower : MonoBehaviour
|
||||
{
|
||||
public float range;
|
||||
[SerializeField] private float attackSpeed;
|
||||
[SerializeField] private float attackDamage;
|
||||
[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;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user