37 lines
984 B
C#
37 lines
984 B
C#
using UnityEngine;
|
|
|
|
public class SlowWebArea : MonoBehaviour
|
|
{
|
|
[SerializeField] private float damagePerSecond = 5f;
|
|
private float damageTimer;
|
|
|
|
private void OnTriggerStay(Collider other)
|
|
{
|
|
if (other.CompareTag("Player"))
|
|
{
|
|
damageTimer += Time.deltaTime;
|
|
if (damageTimer >= 1.0f)
|
|
{
|
|
IDamageable damageable = other.GetComponentInParent<IDamageable>();
|
|
if (damageable != null)
|
|
{
|
|
DamageInfo info = new DamageInfo
|
|
{
|
|
amount = damagePerSecond,
|
|
hitPosition = other.transform.position
|
|
};
|
|
damageable.TakeDamage(info);
|
|
}
|
|
damageTimer = 0f;
|
|
}
|
|
}
|
|
}
|
|
|
|
private void OnTriggerExit(Collider other)
|
|
{
|
|
if (other.CompareTag("Player"))
|
|
{
|
|
damageTimer = 0f;
|
|
}
|
|
}
|
|
} |