Unityで簡単なシューティングゲームを作る[12]
Step12:爆破エフェクトをつける
敵をシャボン弾で撃った時に、ただ消えるだけではなく派手に散って欲しいよね…という訳で爆発エフェクトをつける。
※このサイトのチュートリアルはとりあえず自力でゲームを作ってみることを目的としているため、プログラム言語に関する解説部分はかなり大雑把で意訳気味です。プログラム言語(C#)について正しく、詳しく学びたい方は、入門書やUnityの解説サイトなどをご参考にしていただけたらと思います。また、このサイトはコピープロテクトをかけているため、画面上からスクリプトのコピペができません。「スクリプトはこちら」というリンクからテキストファイルを表示して使ってください。面倒くさくてすみません。
アセットストアを使う
今回もアセットストアのフリー素材をインポートして使用する。手順はStep11と同じ。タブメニューを「AssetStore」に切り替え無料のエフェクト素材を検索する。「Fantasy RPG Effects」というのがカッコ良さそうなのでこれを使ってみる。
規約を確認してダウンロードしたら「Import」で素材を取り込む。
取り込む素材が表示されるので必要な素材を選んで「Import」する。わからない時はとりあえず全部取り込んでおくとよい。
「Assets」フォルダに「DL_Fantasy_RPG_Effects」というフォルダが格納される。今回使うのはこの中の「prefab」フォルダの中にある素材。
prefabの設定をする
「prefab」のフォルダをみると「explode」「star1」など7つのprefabが入っている。それぞれがいろいろなタイプのエフェクト(爆発、キラキラする等)となっている。使いたいエフェクトを選択したら、インスペクタの3Dのチェックを外しておく。(今回は2Dのゲームなため。)このチュートリアルでは「explode_2」を選択してすすめていく。
スクリプトを追加する
選んだエフェクトのprefabを呼び出すスクリプトを記述する。シャボン弾が敵と衝突した時にエフェクトを出したいので、衝突時の処理を記述している「BulletController」にスクリプトを記述していく。
「Assets」の「BulletController」を開き、以下の赤字の部分を追記する。スクリプトはこちらから。
using System.Collections; using System.Collections.Generic; using UnityEngine; public class BulletController : MonoBehaviour { public GameObject explodePrefab; void Update () { transform.Translate (0, 0.2f, 0); if (transform.position.y > 5) { Destroy (gameObject); } } void OnTriggerEnter2D(Collider2D coll) { Destroy (coll.gameObject); Destroy (gameObject); GameObject.Find ("Canvas").GetComponent().AddScore (); GameObject effect = Instantiate (explodePrefab, transform.position, Quaternion.identity) as GameObject; Destroy (effect, 1.0f); } }
最初に爆発エフェクトのPrefabを宣言する。ここで読み込むPrefabは後ほどシーンビューで設定する。
//爆発エフェクトのPrefab public GameObject explodePrefab;
設定したPrefabを作成したのち消すことにより、衝突した際に爆発した感じのエフェクトになる。
GameObject effect = Instantiate (explodePrefab, transform.position, Quaternion.identity) as GameObject; Destroy (effect, 1.0f);
関連づけをする
スクリプトを保存したらシーンビューに戻り、「BulletController」のアタッチ先である「bulletPrefab」を選択する。インスペクタを確認すると「BulletController」の項目に「explodePrefab」という欄ができている。
この空欄に爆発エフェクトのprefabである「explode_2」をドラッグ&ドロップする。こうすることでスクリプト内で宣言した「explodePrefab」に「explode_2」という実体をもたせることができた。
動作確認をする
ゲームビューに切り変えて動作確認を行う。敵にシャボン弾が当たるたびに渦巻き状の爆破エフェクトが表示されればOK。
いよいよ次は最後の仕上げ「Step13:ゲームをビルドする」だ。作成したプロジェクトをPCやWeb上で遊べるよう、実行ファイルに書き出していく。
★チュートリアル一覧
2020.6.3投稿