前提・実現したいこと
Playerがカギに接触すると、柵が消え、自身も消え、効果音を鳴らすスクリプトを作っています。
カギに以下のスクリプトをアタッチし、Playerタグを持ったオブジェクトが接触してきたら実行するようにします。
カギにオーディオソースをつけ、カギのコライダーのistriggerをオンにしています。playerにrigidbodyをつけています。
柵と自身が消えるのはうまくいくのですが、効果音が鳴りません。インスペクター上でちゃんと効果音源は設定しています。
発生している問題・エラーメッセージ
playOneshotで効果音が鳴らない。
エラーメッセージは特になし
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class KeyCollisiion : MonoBehaviour 6{ 7 public string tagName; 8 public string hideObjectName; 9 public AudioClip Keysound; 10 AudioSource audioSource; 11 12 // Start is called before the first frame update 13 void Start() 14 { 15 audioSource = GetComponent<AudioSource>(); 16 } 17 18 void OnTriggerEnter(Collider other) //接触したとき 19 { 20 if (other.CompareTag("Player")) //接触したのがplayerか確認 21 { 22 GameObject hideObject = GameObject.Find(hideObjectName); //隠す柵を見つける 23 24 if (hideObject) 25 { 26 audioSource.PlayOneShot(Keysound); //効果音を鳴らす(なぜかならない) 27 hideObject.SetActive(false); //見つけたオブジェクトを隠す 28 Destroy(this.gameObject); //自身を消す 29 30 } 31 } 32 } 33 34 35 // Update is called once per frame 36 void Update() 37 { 38 39 } 40} 41
試したこと
bool値を設定し、update関数から鳴らそうとしたが、鳴らなかった。
オーディオソースの「開始時に再生する」のチェックを外したが鳴らなかった。
補足情報(FW/ツールのバージョンなど)
Unity2019.4.0f.1 (Windows10)
microsoft visual studioを使用
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/25 06:27