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