Hello, I am asking this question only after searching for similar ones and not finding a solution to the problem.
I have written this simple script that applies damage to my player when it enters a trigger.
var damage = 1;
function OnTriggerEnter(other:Collider)
{
if(other.gameObject.CompareTag("Player"))
{
other.gameObject.SendMessage("ApplyDamage", damage, SendMessageOptions.DontRequireReceiver);
}
}
This works perfectly but the player is only hurt once each time the trigger is hit, I would like the player to keep recieving damage over time while in the trigger until they leave it.
I have tried setting up a timer for this.
var damage = 1;
var damageTimer = 0.0;
function OnTriggerEnter(other:Collider)
{
if(damageTimer==0.0)
{
if(other.gameObject.CompareTag("Player"))
{
damageTimer = Time.Time;
}
if((damageTimer+0.05) > Time.Time)
{
return;
}
else
{
other.gameObject.SendMessage("ApplyDamage", damage, SendMessageOptions.DontRequireReceiver);
damageTimer = Time.Time;
}
}
This does not apply any damage at all and gives me a null reference exception but no other errors.
If someone could please point out to me what I have done wrong, it may be a simple solution but I just can’t see it.
Thank you for reading.