ReisenYoumuOuting/Assets/Scripts/Projectiles/ExplosiveProjectile.cs

26 lines
831 B
C#

using System;
using UnityEngine;
public class ExplosiveProjectile : Projectile
{
[SerializeField] private GameObject explosionEffect;
[SerializeField] private float blastRadius;
[SerializeField] private LayerMask enemyLayer;
protected override void OnTriggerEnter2D(Collider2D other)
{
base.OnTriggerEnter2D(other);
if (!other.CompareTag(tag))
{
GameObject newExplosionEffect = Instantiate(explosionEffect, transform.position, Quaternion.identity);
newExplosionEffect.transform.localScale = new Vector3(blastRadius, blastRadius, blastRadius);
Collider2D[] enemiesInRange = Physics2D.OverlapCircleAll(transform.position, enemyLayer, enemyLayer);
foreach (Collider2D enemy in enemiesInRange)
{
if (enemy.TryGetComponent(out Entity isEntity))
{
isEntity.TakeDamage(damage);
}
}
}
}
}