Files
gpd-925-en/SOLID/Assets/Scripts/Solid/Abstracts/AreaOfEffect.cs
T

28 lines
761 B
C#

using UnityEngine;
namespace Solid.Abstracts
{
public abstract class AreaOfEffect : MonoBehaviour
{
[SerializeField] private ParticleSystem _particleSystem;
[SerializeField] private AudioClip _audioClip;
[SerializeField] private float _duration = 0.5f;
private void OnCollisionEnter(Collision other)
{
if (!IsInsideOfEffectArea(other.collider)) return;
_particleSystem.Play();
AudioSource.PlayClipAtPoint(_audioClip, transform.position, _duration);
ApplyEffect();
}
protected abstract bool IsInsideOfEffectArea(Collider other);
private void ApplyEffect()
{
// apply effect here
}
}
}