3. 敵弾発射について


このチュートリアルでの敵弾発射について解説します。

Enemy3のArborFSMでは直接敵弾を発射せず、子オブジェクトのWeaponを間接的に制御するようにしています。

前回までのチュートリアル

Enemy3から発射命令

SendTrigger

Enemy3のShotステートを見てください。

SendTriggerで、トリガーを送る相手をWeaponとし、そのメッセージを「ShotTrigger」としています。

Weapon側ではこの「ShotTrigger」を引き金として敵弾発射を行う用に制御しています。

Weaponによる発射処理

TriggerTransition

Enemy3の子にあるWeaponオブジェクト選択し、Arbor Editorを見てください。

Startステートに使用されているTriggerTransitionで「ShotTrigger」メッセージが来たら遷移するようになっています。

また、Stop常駐ステートでは「StopTrigger」メッセージを待ち、メッセージが来たらStartステートに瞬時に遷移するようにしています。

このように、SendTriggerとTriggerTransitionを使用することで、オブジェクト間を連動する仕組みが作れるようになります。

詳細は「SendTrigger」と「TriggerTransition」を参照してください。

LookAt2DObjectWithTagについて

Rotation常駐ステートで使用しているLookAt2DObjectWithTagは今回2DSTGのために作成したStateBehaviourです。

Transformフィールドに指定したTransformを、Tagで指定したオブジェクト方向に向き変えるスクリプトとなります。

今回はWeaponをPlayer方向に向かせることで、自機狙いを実現しています。

Shotステートについて

Shotステートでは、InstantiateGameObjectを使用してShotPosition1とShotPosition2からEnemyBulletプレハブを生成しています。

そして、TimeTransitionで0.5秒待ったあと繰り返しEnemyBulletを生成し続けます。

EnemyBulletについて

敵の弾丸は、「Assets/ShootingGame/Prefabs/EnemyBullet」にあります。

EnemyBulletオブジェクトではSetVelocityRigidbody2Dを使用して移動させています。

次のステップ

4. 武器の作成