前提・実現したいこと
Unityでスクリプトから複数効果音を鳴らしたい
publicを効果音の数だけ準備したのですが、インスペクターにpublicにした変数が表示されず効果音をアタッチすることができません。
BGMは効果音と同じようにして複数〜してアタッチすることができたのですが、なぜ効果音だけできないのかわかりません。
というよりbgmも最初に設定した2つから増やすことができません。
Audio Sourceコンポーネントは現在2つ(BGM/効果音用)ありますが、これは何か関係してますか?
発生している問題・エラーメッセージ
インスペクターにpublicな変数が表示されない
該当のソースコード
soundEffect
1 public AudioClip sound1; 2 public AudioClip sound2; 3 //使用するAudioSource 4 private AudioSource sourceEffect; 5 6 // Start is called before the first frame update 7 void Start() 8 { 9 sourceEffect = GetComponent<AudioSource> (); 10 } 11 12 // Update is called once per frame 13 void Update() 14 { 15 16 }
BGM
1 public AudioClip BGM_over; 2 public AudioClip BGM_main; 3 //使用するAudioSource 4 private AudioSource source; 5//ゲームオーバーに切り替えるための変数 6 private int mCount = 1; 7 8//SceneChangeで途切れさせないための処理 9 private void Awake() { 10 int numMusicPlayers = FindObjectsOfType<Sounds>().Length; 11 if (numMusicPlayers > 1) 12 { 13 Destroy(gameObject); 14 } else { 15 DontDestroyOnLoad(gameObject); 16 } 17 } 18 // Start is called before the first frame update 19 void Start() 20 { 21 //使用するAudioSource取得 22 source = GetComponent<AudioSource> (); 23 24 //最初のBGM再生 25 source.clip = BGM_main; 26 source.Play(); 27 28 }
補足情報(FW/ツールのバージョンなど)
質問した後GameManagerで関数を作ったことで効果音をアタッチすること自体はできたのですが、
CS0122というアクセス制限エラーが出てしまいました。
GameManager
1public class 〜{ 2 3 public GameObject _change; 4 public SoundEffects Effect; 5 6 public void Sound1Effect(){ 7 _change = GameObject.Find ("SoundEffect"); 8 Effect = _change.GetComponent<SoundEffects>(); 9 Effect.sourceEffect.clip = sound1; 10 Effect.sourceEffect.PlayOneShot(Effect.sound1); 11 } 12} 13
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。