‫そうですね｡
‫BGMがループしているのは最高なので､ ゲームにスパイシーな音楽を追加してみましょう｡
‫アセットストアで「絶対無料の音楽」を検索してみましょう｡
‫そして､ そう､ 単純にダウンロードすればいいのです｡
‫では､ それをダウンロードしてみましょう｡
‫160メガバイトのファイルなので､ 時間がかかるかもしれませんが､ 全部をインポートするつもりはないんです｡
‫だから､ そのままダウンロードしてください｡
‫少し時間がかかると思います｡
‫だから､ ダウンロードが終わるまで一時停止するんだ｡
‫よし､ ダウンロードの準備ができた｡ このままではゲームが巨大化してしまうので､ すべてのオーディオをインポートしないようにしたい｡
‫使いたいのは7だけです｡
‫バーテックス・スタジオ・セブンから愛をこめて｡
‫だから､ それを輸入しよう｡
‫エンドレスゲームという私たちのゲームのジャンルに少し合っていて､ クールなサウンドになりそうです｡
‫では､ assetフォルダに移動して､ 新しいフォルダを作成しましょう｡ ここでは､ third partyと呼ぶことにします｡
‫そして､ ゲーム音楽､ 手描きの石のテクスチャ､ スタイライズされたクリスタル､
‫スーパーサイヤ人のキャラクターパックの3つを無料で配布します｡
‫それに､ ここに自分たちの体制があるのは､ きれいでいいことだと思います｡
‫わかりました｡
‫それでは､ ここで新しいオブジェクトを作成してください｡
‫エンプティを作成します｡
‫そして､ その1つをバックグラウンドループと呼ぶことにします｡
‫また､ 新しいスクリプトを作成し､ 同様にバックグラウンドループと呼ぶことにします｡
‫背景のループ
‫そして､ この背景ループを背景の中にドラッグして､ そのスクリプトを背景ループのゲームオブジェクトの中にドラッグします｡
‫そのうえで､ リセットするんです｡
‫これで､ バックグラウンドループにオーディオソースができるはずです｡
‫だからオーディオソースは､ 私が追加するものです｡
‫次にオーディオクリップが必要ですが､ Vertex Studioのwith
‫loveがありますので､ これを使いましょう｡
‫3かもしれない｡
‫とまあ､ 確認してみましょう｡
‫そして､ お聞きの通り､ バックグラウンドで音楽が流れていて､ もしかしたらちょっとうるさすぎるかもしれません｡
‫だから､ ゲーム中は今から少し音を小さくしておこうと思います｡
‫では､ 次にそれを確認してみましょう｡
‫そして､ ええ､ 見てください､ いい感じです｡
‫見た目は素晴らしい｡
‫そして､ 今度はドロップです｡
‫そして､ ご覧のように､ 単にシーンを再スタートさせ､ ループも再スタートさせたり､ 音楽も再スタートさせたりしているのです｡
‫そして､ 私たちがやりたいことは､ 死んだ後も音楽が再開されないように､ そのゲームオブジェクトを生かしておくことです｡
‫だから続くはずだし､ そうするメソッドもある｡
‫では､ スクリプトを作成してみましょう｡
‫では､ バックグラウンドループに入りましょう｡
‫startメソッドとupdateメソッドを廃止して､ ここではawakeメソッドだけにしましょう｡
‫Voidが目覚めた｡
‫そして､ ここでメソッドを呼び出します｡
‫負荷を壊さないように
‫これは､ 新しいシーンをロードするときに､ オブジェクトターゲットが自動的に破壊されないようにするものです｡
‫それが､ 私たちの望むところです｡
‫また､ 破壊してはいけないゲームオブジェクトはどれですか？
‫まあ､ ゲーム・オブジェクトということで､ このスクリプトが入っているゲーム・オブジェクトということでいいんですけどね｡
‫つまり､ 背景ループのゲームオブジェクトは､ あるシーンから別のシーンへの移動に耐えられるということです｡
‫では､ それを確認してみましょう｡
‫ゲームを動かして確認してみましょう｡
‫ご覧のように､ ここには小さなユニティサインがあります｡
‫そして､ ゲームを走らせましょう｡
‫ポイントを集めて落ちよう｡
‫そして､ 今､ 私たちは負荷を破壊しないようにしていることがわかります｡
‫そして､ そのうちの2つをご紹介します｡
‫つまり､ 背景ループと別の背景ループがあり､ それは私たちが望んだものではありません｡
‫どちらか一方だけでいいのです｡
‫では､ どうすればそれを解決できるのか｡
‫まあ､ そういう方法もあるんですけどね｡
‫コードを見てみると､ public static変数が必要です｡
‫そこで､ 静的な背景ループの変数を作成する必要がありますが､ これはインスタンスです｡
‫そこで､ そのゲーム・オブジェクトのインスタンスは1つだけにしたいので､ インスタンスと呼ぶことにします｡
‫では､ Awakeメソッドで確認してみましょう｡
‫インスタンスがNULLかどうかをチェックします｡ もしNULLなら､ インスタンスはthis､ つまりこのゲーム・オブジェクトになるからです｡
‫つまり､ 現在のシーンやゲームの特定のゲーム・オブジェクトが､ 私たちが扱いたいインスタンスになるわけです｡
‫しかし､ もしあったとしても､ そうでなければ､ このインスタンスでない場合｡
‫破壊してください｡
‫そこで､ ゲームオブジェクトを破壊する｡
‫ということは､ その前に持っていたインスタンスなので､ もしそれがnullでなかったら､ 現在働いているものでなければ､
‫あるいは現在自分が自分でなければ､ 自滅してしまえということです｡
‫つまり､ 他のインスタンスやバックグラウンドループの他のインスタンスを､ 存続させるということです｡
‫わかりました｡
‫つまり､ このコードがそうなっているのです｡
‫つまり､ 背景のループを常に1つだけにして､ シーンを変更した後に新しいループを作らないようにすることができるのです｡
‫では､ 次にもう一度確認してみましょう｡
‫もちろん､ 今は音量を下げないとうるさくてしょうがないので､ 音量を下げています｡
‫だから､ 死のう｡
‫そして､ ご覧のように私たちの音楽は流れ続けました｡
‫わかりました｡
‫こうして､ BGMのループを作ることができます｡
‫わかりました｡
‫それでは､ 次回のビデオでは､ 世界をプロシージャルに作成する様子をご覧ください｡