【第44回】〜BulletPro – 2D Projectile Workspace〜2Dシューティングでの弾幕などを実装
BulletPro – 2D Projectile Workspaceとは
Simon Albouよりリリースされている、
2Dのシューティングなど弾丸を管理し実装可能なアセット
弾幕のパターンなどもコード無しで実装可能で、管理もしやすくなっています。
どんな人にオススメ?
- 2Dでシューティングをつくりたい
- 弾幕を実装したい
- パターンも複数作ってランダムにしたりしたい
- タワーディフェンスなどにも応用したい
使ってみた
弾幕つけれるということで、
まだ2Dでシューティングって自分で作ったことないんですが
このアセット簡単に弾幕とか実装できるのであればちょっと挑戦したくなりそうです!
ということでインポート。
4つほどサンプルシーンとしてミニゲームが用意されていました。
UFOが移動して隕石をマウスで弾を発射して、当たると隕石が分裂して自分がぶつかるとダメージ。
もうひとつのシーン↓
ブロックが破壊されるとアイテムがでてきて取ると弾も発射できる様になりました。
3つ目のシーン↓
横スクロールのボス戦ですね。
自分から発射する攻撃がウネウネしてかっこいい!
シューティングのボス戦で、自分の攻撃とボスの攻撃を切り替えて確認できました。
さまざまなタイプの弾幕がつくれそうですね。
実際にどう使うのか、やってみます!
まずはヒエラルキーの+からScene Setupを選択します。
するとBullet Pro Scene Setupというオブジェクトが生成されました。
次にEmitterというのも選択して生成します。
Bullet Emitterコンポーネント内のEmitter Profireのところに何かしエミッタープロファイルをアタッチします。
アセットでいくつか用意されています。
このBullet Emitterオブジェクトを、とりあえずでキャラクターの子オブジェクトとして同じポジションに配置しました。
Bullet EmitterコンポーネントのPlay At Startをチェックつけて再生してみます。
すると・・・
シーン再生時に弾が発射されました!
弾が発射され続けるので、スクリプトで止めてみます。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using BulletPro; //←これを追加
public class BulletProTest : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
if(Input.GetKeyDown(KeyCode.Space)){
GetComponent<BulletEmitter>().Kill(); //←コンポーネントを取得してKill()で停止
}
}
}
この様なスクリプトを作成しBullet Emitterオブジェクトにアタッチして再生!
スペースを押したら発射が止まりました!
KillのほかにPlay(),Pause(),Stop()などがあります。
これで任意のタイミングで発射したり止めたりができそうです。
インスペクターにボタンが再生すると出てきてくれるので、
確認することもできます。
Profileを変えてみています↑
弾のタイプが変わっていますね。
emitter Profileの中を確認すると、パターンなどを確認することができます。
Shotのレイアウトのところを変えてみました。↓
とりあえず再生してみると・・・・
飛び方変わりました!
Bulletでは弾自体の設定がいろいろみれます。↓
Speedをちょっと変えてみました!
ちょっと早くなりましたね!
超基本的なクイックスタートの内容だとこんな感じですね〜
3Dでゲームをつくることが多いので2Dを今一度勉強して
シューティングでもつくってみたくなりますね!
まとめ
いかがでしたでしょうか?
気になった方は是非アセットストアにてチェックしてみてください!
こちら↓
もう少し触れる機会をつくってこのアセットの深いところをつかいこなしたいところです・・・!
本格的なシューティングを作っていくにも便利だと思いますし、
一部的に敵が弾を発射してくる場面とかをこれで追加して要素を増やすのもありかもしれません。
今回はこんな感じで!
それでは💤