3. 敵弾発射について


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

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

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

Enemy3から発射命令

SendTrigger

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

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

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

SendTriggerについての詳細は、Arborリファレンス「SendTrigger」を参照してください。

Arborリファレンス「SendTrigger」

Weaponによる発射処理

TriggerTransition

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

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

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

TriggerTransitionについての詳細は、Arborリファレンス「TriggerTransition」を参照してください。

Arborリファレンス「TriggerTransition」

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

LookAt2DObjectWithTagについて

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

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

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

Shotステートについて

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

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

EnemyBulletについて

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

次のステップ

4. 武器の作成

Privacy Preference Center

Your Privacy

This site uses cookies to display contents and advertisements tailored to users, provide social media functions, measure advertisement impressions and clicks. We also gather information on users' site usage status and provide them to social media, advertisement distribution and data analysis partners. Each partner may use this information in combination with other information that the user provided to each partner or other information gathered when the user used the service of each partner.

Analytics, Ads