コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity 入門】全方位シューティングを作る 第20回 SE の実装

目次

前回のチュートリアル

はじめに

前回は、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 ゲージと経験値ゲージを作成していきます

次のチュートリアル

チュートリアル一覧