Project van periode 1 schooljaar 2

In periode 1 van schooljaar 2024 – 2025 kregen we een Tower defense project en kon je kiezen welke thema je de game mee ging maken. Ik had toen Sci-fi gekozen en ging ik in mijn eentje aan het werk. Ik deed er ongeveer 10 weken over om het spel te maken.


public class AutoTurret : MonoBehaviour
{
[SerializeField] private GameObject proctilePrefab;
[SerializeField] private Transform firePoint;
[SerializeField] private float fireRate = 1f;
[SerializeField] private float range = 5f;
[SerializeField] private LayerMask alienLayer;
private float fireCountdown = 0f;
void Update()
{
Collider2D[] targetsInRange = Physics2D.OverlapCircleAll(transform.position, range, alienLayer);
foreach (Collider2D target in targetsInRange)
{
if (target.CompareTag("Alien"))
{
AimAtTarget(target.transform);
if (fireCountdown <= 0f)
{
Shoot();
fireCountdown = 1f / fireRate;
}
fireCountdown -= Time.deltaTime;
break;
}
}
if (targetsInRange.Length > 0)
{
Transform target = targetsInRange[0].transform;
AimAtTarget(target);
}
}
void AimAtTarget(Transform target)
{
Vector2 direction = (target.position - transform.position).normalized;
float angle = Mathf.Atan2(direction.y, direction.x) * Mathf.Rad2Deg;
transform.rotation = Quaternion.Euler(0, 0, angle);
}
void Shoot()
{
Instantiate(proctilePrefab, firePoint.position, firePoint.rotation);
}
void OnDrawGizmosSelected()
{
Gizmos.color = Color.red;
Gizmos.DrawWireSphere(transform.position, range);
}
}