6-3ゲームスタート・ゲームオーバーの時にも効果音を鳴らす【Unityゲーム開発の基礎】作って学ぶブロック崩し
ブロック崩しを作りながらUnityを学んでいこう!
フェーズ1で「ブロック崩しの骨格」を作り
フェーズ2で「見た目をかっこよく」して
フェーズ3で「タイトル画面やゲームオーバーなどの画面」を作って
フェーズ4で「アニメーション」させて
フェーズ5で「ステージを増やす」ことができました。
フェーズ6の目標は「音を鳴らす」です。
今回はゲームを開始した時やゲームオーバーになった時、クリアした時などの場面切替の時にも音を鳴らすようにしてみます。
AudioSourceコンポーネントを追加
まずは AudioSourceコンポーネントです。
場面切替用の AudioSource は MainManagerオブジェクトへ追加することにします。
MainManagerオブジェクトの Inspector からAudioSourceコンポーネントを追加します。
音源を紐づけ
MainManagerBehaviourにAudioClipをメンバ変数として追加します。
public class MainManagerBehaviour : MonoBehaviour
{
public AudioClip gamePlayES; //←ココを追加
public AudioClip gameOverES; //←ココを追加
public AudioClip gameClearES; //←ココを追加
:
:
}
Inspectorからこの変数にそれぞれ音源ファイルを紐づけます。
スクリプトで音を鳴らす
スクリプト MainManagerBehaviour を以下のように変更しました。
public class MainManagerBehaviour : MonoBehaviour
{
:
:
private AudioSource audioSource; // ←ココを追加
void Start()
{
:
:
audioSource = GetComponent<AudioSource>(); // ←ココを追加
}
public void OnNewGameButtonClicked()
{
:
:
audioSource.PlayOneShot(gamePlayES); // ←ココを追加
}
public void OnNextStageButtonClicked()
{
:
:
audioSource.PlayOneShot(gamePlayES); // ←ココを追加
}
public void OnContinueButtonClicked()
{
:
:
audioSource.PlayOneShot(gamePlayES); // ←ココを追加
}
public void OnReturnToTitleButtonClicked()
{
:
:
audioSource.PlayOneShot(gamePlayES); // ←ココを追加
}
public void OnEnemyUnitDead()
{
:
:
audioSource.PlayOneShot(gameClearES); // ←ココを追加
}
public void OnBallLost()
{
:
:
audioSource.PlayOneShot(gameOverES); // ←ココを追加
}
}
ゲーム開始時に呼び出される Startメソッドで、MainManagerオブジェクトに紐づけられた AudioSource コンポーネントを取得しておきます。
そして、それぞれ場面切替で呼び出すメソッドでAudioSourceのPlayOneShotを呼び出して音を鳴らします。
つづく
次回:6-4BGMを鳴らす
この記事が参加している募集
この記事が気に入ったらサポートをしてみませんか?