環境
WIndows10
Unity 2018.2.11f1 personal
経緯
UnityでVRゲームを作っているとき、ゲームを再生したら、以下のようなエラーが表示されました。
There are 2 audio listeners in the scene. Please ensure there is always exactly one audio listener in the scene.
原因
これは、シーン内に「AudioListener」コンポーネントが2つ以上アタッチされている場合に発生するようです。
AudioListerコンポーネントは人間でいう「耳」の役割をしていて、シーン内に1つだけにしておかないと、正確に音が再生されないなどの弊害が出ます。
解決方法
ゲーム実行時にアクティブなAudio Listenerが1つだけになるように対応します。
具体的には……
- 複数のオブジェクトにAudio Listenerがアタッチされている場合、1つだけに絞る
- スクリプトなどでアクティブなAudio Listenerが1つになるように制御する
とはいっても
シーン内に多数のオブジェクトが配置された状態でAudioListerコンポーネントがアタッチされているオブジェクトを探すのは大変!
AudioListenerがアタッチされたオブジェクトを探す方法は、下記フォーラムに掲載されていました。
https://answers.unity.com/questions/927548/how-do-you-find-2-audio-listeners-in-scene.html
このフォーラムによれば
- ヒエラルキービューの検索窓左にある虫眼鏡アイコンをクリック
- 検索対象を「Type」に変更
- 検索窓に「audiolistener」と記入して検索
これで、AudioListerコンポーネントがアタッチされたオブジェクトが検索できるそうです。
終わりに
上記のエラーが出たら、ぜひ試してみてください。
エラーの原因や解決方法が書いてある記事は割と見つけましたが、AudioListenerがアタッチされたオブジェクトの探し方が書かれた記事は見つからなかったので書いてみました。