Unity上の確認テストでは音が鳴るのに実機テストでは鳴らない
タイトルの通りのことが発生しました。
Androidでの実行時に出ているエラーが以下のとおり。
PlayOneShot was called with a null Audio Clip.
音源のクリップはスクリプトにアタッチしているし、実際に確認では音が出ているのにnullとは・・・?
解決方法:一番最初に呼び出されるAudio Sourceオブジェクトにアタッチする。
実は、各シーンで使用しているAudio Sourceに対して、DontDestroyOnLoad()を使っていました。
シーンが変わってもBGMが変わってほしくなかったので、、、
なので、一番最初に呼び出されるシーンのAudio Sourceがオブジェクトとしてずっと採用(?)されており、
他のシーンのAudio Sourceに追加したクリップなど知らない、という状態だったのだと思います。
よくわからないまま、各シーンでAudio Sourceをヒエラルキーに置いてクリップを追加していたけど、
ずっとオブジェクトが残っているならこれも必要ないのか???
DontDestroyOnLoad()の仕様がよくわかっていないため起こってしまった不具合でした。