えびはえびや

プログラミング初心者の備忘録とかです

Unity上の確認テストでは音が鳴るのに実機テストでは鳴らない

タイトルの通りのことが発生しました。
Androidでの実行時に出ているエラーが以下のとおり。

PlayOneShot was called with a null Audio Clip.

音源のクリップはスクリプトにアタッチしているし、実際に確認では音が出ているのにnullとは・・・?

解決方法:一番最初に呼び出されるAudio Sourceオブジェクトにアタッチする。

実は、各シーンで使用しているAudio Sourceに対して、DontDestroyOnLoad()を使っていました。
シーンが変わってもBGMが変わってほしくなかったので、、、
なので、一番最初に呼び出されるシーンのAudio Sourceがオブジェクトとしてずっと採用(?)されており、
他のシーンのAudio Sourceに追加したクリップなど知らない、という状態だったのだと思います。

よくわからないまま、各シーンでAudio Sourceをヒエラルキーに置いてクリップを追加していたけど、
ずっとオブジェクトが残っているならこれも必要ないのか???
DontDestroyOnLoad()の仕様がよくわかっていないため起こってしまった不具合でした。