5丁目らへんのさよねん家

UnityとBlender初心者です。つまづいたこととか日常とか雑談とかいろいろ。

Unityつまづき Audio再生ができない2

こんばんわ。さよねです。


前回音楽の切り替えができないとわーわー喚いていましたが

テスト用に新たにプロジェクトを切り替え試してみた結果
AudioSource.Play()関数は問題なく使えました。

つまり切り替え部分のスクリプトがうまく行ってないってことだ!

と気づいてあれこれ試したところ

Play関数をUpdate関数内で実行しているところに問題がありました。

色々試した結果、現在のゲームの構造を簡単にいうと

GameControllerオブジェクトでゲームの推移状態を管理して
AudioManagerというオブジェクトでBGMを管理&再生して
AudioManagerからGameControllerの繊維状態を参照して音楽を切り替えるって形になってます。

んで、AudioManagerのUpdate関数内に再生する内容を入れてたもんだから、再生ボタン連打してるみたいな状態になって再生されなかったわけです。

色々構造を変えてみたりしてましたが、どうもずっとそれが原因だったみたいです。

Start関数のほうで再生するよ内容を盛り込んだら、普通にながれました。



んで、無事音楽がながれたのでやったーーと思ったわけですが

Start関数だと、一度しか実行しないので結局音楽の切り替えがおきない…
ううう
ゲーム状態の遷移自体はGameControllerのUpdate関数のなかでやってるわけで、
ゲーム遷移が「タイムアップ」になったタイミングで音楽を切り替えて再生したいわけです。

ですがUpdate関数のなかで「ゲーム遷移がタイムアップになったらBGM2を再生!」見たいな内容を入れると、先ほど説明したように再生されなくなるわけで。


んんんんんんんん
結局ふりだしに戻りましたどうしましょう…