【初心者向け】Unityでシューティングゲームの作り方-part7

こんにちは

今回Udemyのテキスト教材用に
シューティングゲームの記事を作成しました!

共同製作者は
Unityインストラクターしまづさんです

初心者の方でも真似て作れる様に、

簡潔にわかりやすく書いていきます。

 

Part7では

  • BGM・SEの付け方

を記事にしました。

 

PR

 

環境は
MacOS Catalina:ver 10.15.4
Unity:ver2019.4.3f1

です。

BGM・SEの付け方

オブジェクトの用意

BGMを鳴らすには、音を出すためのスピーカーが必要なので作成しましょう!
まずCreateEmptyでオブジェクトを作成してください。

作成したオブジェクトをBGMと命名し、AudioSourceを追加してください!

追加後bgmをAudioClip(音源)に設定し、
PlayerOnAwake(ゲーム開始時にBGMを鳴らすか)とLoop(曲をループさせるか)にチェックをして下さい。

 

PlayerSpaceshipとExplosionにも同様に、
AudioSourceを追加してあげて下さい。

ExplosionはPrefab化しているので、OpenPrefabをして追加をしましょう!

 

ここまでの作業が終わったら、コードを書いていきましょう!
PlayerShipに下記のコード書いてください

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerShip : MonoBehaviour
{
//弾を発射するオブジェクトの位置を取得
public Transform firePoint;
//弾をオブジェクトとして取得
public GameObject bulletPrefab;
//スピーカーを取得する入れ物
AudioSource audioSource;//今回追加***************************
public AudioClip shotSE;//今回追加***************************
void Start()//今回追加***************************
{
//用意した入れ物にAudioSourceを入れる
audioSource = GetComponent<AudioSource>();
}
// 一定時間(0.02s)ごとに実行される関数
void Update()
{
Move();
Shot();
}
//移動の処理
void Move()
{
//横軸の値を返す
float x = Input.GetAxisRaw("Horizontal");
//縦軸の値を返す
float y = Input.GetAxisRaw("Vertical");
//現在位置にx,yの値を+する。スピードの安定性を上げるためにTime.deltaTimeと4fをかける
transform.position += new Vector3(x, y, 0) * Time.deltaTime * 4f;
}
//弾の処理
void Shot()
{
if (Input.GetKeyDown(KeyCode.Space))
{
//(生成したいもの:弾、 位置:発射ポイント取得、 回転:オブジェクトの回転を取得)
Instantiate(bulletPrefab, firePoint.position, transform.rotation);
audioSource.PlayOneShot(shotSE);//今回追加***************************
}
}
}

Explosionに下記のコード書いてください

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Explosion : MonoBehaviour
{
AudioSource audioSource;
public AudioClip boomSE;
void Start()
{
audioSource = GetComponent<AudioSource>();
audioSource.PlayOneShot(boomSE);
// 生成して0.5秒後に破壊
Destroy(gameObject, 0.5f);
}
}

 

コードの記述が終わったら、コードで記述したものとアタッチしていきましょう。
PlayerSpaceshipを選択して、SEのshootをドラッグ&ドロップして下さい!

Explosionを選択して、SEのboomをドラッグ&ドロップして下さい!

以上の操作で、BGM・SEはついているはずです!

試しにPlayボタンで確認して下さい!

 

 

この時もし下記のエラーコードが出てきたら、再起動してみてください。
PrefabをOpenPrefabした状態でPlayボタンを押してテストプレイをすると、
出続けることがあります。(実際になりました笑)

NullReferenceException: Object reference not set to an instance of an object

 

 

まとめ

今回も非常に簡単な作業で、BGMやSEをつけることができました!

他のゲームでも絶対に使う手法なので覚えておきましょう。

 

 

次回はこちら

関連記事

こんにちは、ユニブレです!今回Udemyのテキスト教材用にシューティングゲームの記事を作成しました!共同製作者はUnityインストラクターしまづさんです 初心者の方でも真似て作れる様に、[…]

 

以前のPartの記事をみていない方は下記からご覧ください!

関連記事

こんにちは今回Udemyのテキスト教材用にシューティングゲームの記事を作成しました!共同製作者はUnityインストラクターしまづさんです この記事では初心者の方でも真似て作れる様に、簡潔[…]

関連記事

こんにちは今回Udemyのテキスト教材用にシューティングゲームの記事を作成しました!共同製作者はUnityインストラクターしまづさんです Part2では 機体の操作 攻撃の実[…]

関連記事

こんにちは今回Udemyのテキスト教材用にシューティングゲームの記事を作成しました!共同製作者はUnityインストラクターしまづさんです 初心者の方でも真似て作れる様に、簡潔にわかりやす[…]

関連記事

こんにちは今回Udemyのテキスト教材用にシューティングゲームの記事を作成しました!共同製作者はUnityインストラクターしまづさんです 初心者の方でも真似て作れる様に、簡潔にわかりやす[…]

関連記事

こんにちは今回Udemyのテキスト教材用にシューティングゲームの記事を作成しました!共同製作者はUnityインストラクターしまづさんです初心者の方でも真似て作れる様に、簡潔にわかりやすく書いていきます[…]

関連記事

こんにちは今回Udemyのテキスト教材用にシューティングゲームの記事を作成しました!共同製作者はUnityインストラクターしまづさんです 初心者の方でも真似て作れる様に、簡潔にわかりやす[…]