トリガーとなるオブジェクトなどがイベント発生で消えてしまう場合
(アイテムをタップして入手する場合など)には問題がありませんが、

残り続けるなどして、意図せずに何度も同じイベントが
起きてしまうのはまずいですね。

そのような場合には bool を使います。

以下、ボタンを押した際、最初の1回だけ音が鳴るスクリプトです。


C#
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class onseiscript : MonoBehaviour {

    private AudioSource audioSource;

    public AudioClip koukaon;

    bool onlyonetime = false;
   
 // Use this for initialization
 void Start () {

        audioSource = gameObject.GetComponent<AudioSource>();
    }

    public void buttontap()
    {
        if (onlyonetime == false)
        {
            audioSource.PlayOneShot(koukaon);
            onlyonetime = true;
        }
    }
}

イベントの発生条件に bool を入れ、発生と同時に true, false

切り替えることで同じイベントは発生しなくなります。