目次
前回のチュートリアル
はじめに
前回は、BGM を実装しました
今回は、SE を実装していきます
実装する SE
今回実装する SE の種類は下記のとおりです
- プレイヤーがレベルアップした時
- プレイヤーがダメージを受けた時
- 敵を倒した時
- 宝石を取った時
プレイヤーのスクリプトの修正
最初に、プレイヤーがレベルアップした時と
ダメージを受けた時に SE を再生するコードを実装していきます
「Player」スクリプトをコードエディタで開き、
変数の定義に下記のコードを追加します
public AudioClip m_levelUpClip; // レベルアップした時に再生する SE public AudioClip m_damageClip; // ダメージを受けた時に再生する SE
次に、AddExp 関数の最後に、下記のコードを追加します
// レベルアップした時の SE を再生する
var audioSource = FindObjectOfType<AudioSource>();
audioSource.PlayOneShot( m_levelUpClip );
そして、Damage 関数の先頭に、下記のコードを追加します
// ダメージを受けた時の SE を再生する
var audioSource = FindObjectOfType<AudioSource>();
audioSource.PlayOneShot( m_damageClip );
敵のスクリプトの修正
次は、敵を倒した時に SE を再生するコードを作成していきます
「Enemy」スクリプトをコードエディタで開き、
変数の定義に下記のコードを追加します
public AudioClip m_deathClip; // 敵を倒した時に再生する SE
そして、OnTriggerEnter2D 関数の
if ( collision.name.Contains( "Shot" ) )
の中の
if ( 0 < m_hp ) return;
の下に下記のコードを追加します
// 敵を倒した時の SE を再生する
var audioSource = FindObjectOfType<AudioSource>();
audioSource.PlayOneShot( m_deathClip );
宝石のスクリプトの修正
さらに、宝石を取得した時に SE を再生するコードを作成していきます
「Gem」スクリプトをコードエディタで開き、
変数の定義に下記のコードを追加します
public AudioClip m_goldClip; // 宝石を取得した時に再生する SE
そして、OnTriggerEnter2D 関数の最後に下記のコードを追加します
// 宝石を取得した時の SE を再生する
var audioSource = FindObjectOfType<AudioSource>();
audioSource.PlayOneShot( m_goldClip );
SE の設定
ここまでで、SE を再生するコードの作成が完了したので、
Unity エディタで、どのサウンドを SE として再生するか設定していきます
Unity エディタに戻り、「Player」オブジェクトを選択した状態で、
「power-up-1」を「Level Up Clip」に、
「death」を「Damage Clip」にドラッグして設定します
次に、Ctrl を押しながら敵のプレハブをすべてクリックして選択して、
「death」を「Death Clip」にドラッグして設定します
そして、宝石のプレハブを順番に選択して、
下記のように SE をドラッグして設定していきます
Gem1
Gem2
Gem3
Gem4
これで Unity を再生すると、
プレイヤーがレベルアップした時、プレイヤーがダメージを受けた時、
敵を倒した時、宝石を取った時に SE が鳴るようになったことが確認できます
次回は、HP ゲージと経験値ゲージを作成していきます