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