Trigger getting called constantly?

I am using a circular trigger to act as a damage collider (when player hits enemy trigger, player gets hurt). My problem is, whenever I enter the trigger it plays, and then when I exit it plays multiple times until I die. I assume this is caused by me entering and exiting the trigger rapidly (since it’s a circle) but I can’t find a fix. Here’s the code

#pragma strict

private var SanityEffect : InsanityGUI;

var scarePercent : float = 20.0;
var ScareSound : AudioClip;

function Start()
{
    SanityEffect = GameObject.Find("FPSController").GetComponent(InsanityGUI);
}

function OnTriggerEnter (Col : Collider)
{
    if(Col.tag == "Player")
    {
        SanityEffect.currentSanity += scarePercent;
        GetComponent.<AudioSource>().PlayOneShot(ScareSound);
    }
}

maybe add a OnTriggerExit method to stop your audiosource

That’s not the issue, the trigger is replaying constantly because I can enter and exit so quickly. I need to know how to stop it from doing that

How about not calling PlayOneShot if AudioSource.isPlaying already?

That would work, yes, but the problem is the whole trigger. I will die immediately if I enter and exit it rapidly. I need to know how to not only stop the sound, but stop the damage from being triggered as well, almost like a delay.

Then make a delay. Remember last time you entered it and check current time against it.