質問: 30f; // Use this for initialization void Start () { } // Update is called once per frame void Update () { counter -= Time.deltaTime; if(counter <= 10) { GetComponent().PlayOneShot(se); } } } ### 補足情報(FW/ツールのバージョンなど) Unity 2018.1.5f
回答: Updateは毎フレーム呼ばれる関数で、PlayOneshotは、AudioSouceが音を鳴らしていようといまいと重ねて音を鳴らすメソッドです。 なので、一秒間に60回更新される環境であれば、一秒間に60個ものアラーム音声が再生されてしまいます。 AudioSourceのLoopをインスペクタなどでTrueにしておき、 .isPlayingなどでチェックしてからPlayで一度だけ鳴らせばいいでしょう。 https://docs.unity3d.com/ja/2017.4/ScriptReference/AudioSource.html