how to make collision istrigger and play once on collision

OK, so i just completed the script i wanted but i have 1 prolem. It is not is trigger. So when i play the object as istrigger it just walks into it. Also i can walk into it multiple times which i dont want. Here is my script.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class TriggerEventK : MonoBehaviour {

	public Transform[] spawnPosition;       //Transforms the position
	public GameObject[] SpongebobPrefab;   //Gameobject of type
	public GameObject[] SpongebobClone;    //Clone object of type
	public Material skyBoxA;               //Sets material for skybox
	public Material skyBoxS;               //Sets material for skybox
	public AudioClip myAudioA;             //Sets AudioClip
	public AudioClip myAudioS;             //Sets AudioClip
	public AudioSource myAudioSourceA;     //Sets AudioSource
	public AudioSource myAudioSourceS;     //Sets AudioSource


	void Start () {
		myAudioSourceA.clip = myAudioA;  //Sets AudioSource as AudioClip
		myAudioSourceS.clip = myAudioS;  //Sets AudioSource as AudioClip
	  	RenderSettings.skybox = skyBoxA; //Renders Sets skybox
		myAudioSourceA.Play();           //Plays Audio
	}

    void OnCollisionEnter (Collision collisionInfo){  //Adds collision type
		if (collisionInfo.collider.name == "Player"){ //Adds Collision detection for type
			RenderSettings.skybox = skyBoxS;          //Sets Skybox
			RenderSettings.fogColor = Color.black;    //Sets Fog Color
			RenderSettings.fogDensity = 0.09F;        //Sets Fog Density
			RenderSettings.fog = true;                //Enables Fod
			myAudioSourceA.Stop();                    //Stops audio
			myAudioSourceS.Play();                    //Plays Audio
			SpongebobClone[0] = Instantiate (SpongebobPrefab[0], spawnPosition[0].transform.position, Quaternion.Euler(0, 0, 0)) as GameObject; //Instantiates Prefab object, reaching clone and spawning it as a GameObject type.
		}
	}
}

I figured it out. For those who are wondering here is the code.

public class TriggerEventK : MonoBehaviour {

	public Transform[] spawnPosition;       //Transforms the position
	public GameObject[] SpongebobPrefab;   //Gameobject of type
	public GameObject[] SpongebobClone;    //Clone object of type
	public Material skyBoxA;               //Sets material for skybox
	public Material skyBoxS;               //Sets material for skybox
	public AudioClip myAudioA;             //Sets AudioClip
	public AudioClip myAudioS;             //Sets AudioClip
	public AudioSource myAudioSourceA;     //Sets AudioSource
	public AudioSource myAudioSourceS;     //Sets AudioSource


	void Start () {
		myAudioSourceA.clip = myAudioA;  //Sets AudioSource as AudioClip
		myAudioSourceS.clip = myAudioS;  //Sets AudioSource as AudioClip
	  	RenderSettings.skybox = skyBoxA; //Renders Sets skybox
		myAudioSourceA.Play();           //Plays Audio
	}

    void OnTriggerEnter (Collider other){  //Adds collision type
		if (this.enabled){
		if (other.name == "Player"){ //Adds Collision detection for type
			RenderSettings.skybox = skyBoxS;          //Sets Skybox
			RenderSettings.fogColor = Color.black;    //Sets Fog Color
			RenderSettings.fogDensity = 0.09F;        //Sets Fog Density
			RenderSettings.fog = true;                //Enables Fod
			myAudioSourceA.Stop();                    //Stops audio
			myAudioSourceS.Play();                    //Plays Audio
			SpongebobClone[0] = Instantiate (SpongebobPrefab[0], spawnPosition[0].transform.position, Quaternion.Euler(0, 0, 0)) as GameObject; //Instantiates Prefab object, reaching clone and spawning it as a GameObject type.
		    this.enabled = false;
			}

		}
	}

}