TopDownEngine 弾数設定・リロードできる銃の作成2/2

前回は Unity の「TopDown Engine」アセットの公式レシピを参考に 2D 用の Weapon with Ammo 版の銃のプレハブを作成して、テストプレイを行いました。

前回の記事:TopDownEngine 弾数設定・リロードできる銃の作成1/2 | Compota-Soft-Press

今回は、前回公式レシピを参照に作成した Weapon with Ammo 版の銃プレハブ TestWeapon の右方向にしか撃てない問題の解決方法とオートリロードの設定方法を紹介します。
※ Unity のバージョン 2021.3.25f1、 TopDown Engine のバージョンは 3.2 です。

右方向にしか撃てない問題の解決方法

サンプル KoalaDungeon の ItemPicker に触れた際に得られる武器を、公式レシピに従って TestWeapon (ProjectileWeapon) に変えました。

TopDownEngine KoalaRiflePicker の ItemPicker コンポーネントのItemをTestWeapon(InventoryWeapon)に差し替えます..

変更前の KoalaRifle (ProjectileWeapon) と比較して、足りないコンポーネントを追加することで解決しました。

AutoAim2D コンポーネントの追加

もともと設定されていたのは KoalaRifle (ProjectileWeapon) だったので、そちらのコンポーネントの構成を確認すると AutoAim2D コンポーネントが付加されていました。
※ Assets/TopDownEngine/Demos/Koala2D/Prefabs/Weapons/Weapons/KoalaRifle.prefab

TopDownEngine サンプル KoalaRifle には WeaponAim2D が付加されていました.

Unity では、コンポーネント単位でコピー、ペーストができるので、その機能を使って、サンプル KoalaRifle の WeaponAim2D コンポーネントを、公式レシピに従って作った習作 TestWeapon に貼り付けます。
※ Add Component ボタンから追加して、設定を調整しても結果は同じです。

コピーしたいコンポーネント(KoalaRifle の WeaponAim2D) の右上の…を押してメニューを開き、Copy Component を選択してコピーします。

TopDownEngine サンプル KoalaRifle の WeaponAim2D をコピーします.

次に TestWeapon を選択して、付加したいずれかのコンポーネントの…のメニューを開き、 Paste Component As New を選ぶと、 KoalaRifle からコピーした内容の WeaponAim2D コンポーネントが追加されます。
※すでに WeaponAim2D がある場合は、 Paste Component Values で設定内容だけを上書きできます。

TopDownEngine 習作 TestWeapon に WeaponAim2D を新規コンポーネントとして貼り付けます(他のコンポーネントのメニューから).

TestWeapon に KoalaRifle と同じ設定の WeaponAim2D コンポーネントが追加されました。

TopDownEngine 習作 TestWeapon に WeaponAim2D を新規コンポーネントとして貼り付けられました.

銃の連射速度の調整

ついでに銃の連射速度も以前に行った方法で調整しておきます。

ProjectileWeapon コンポーネントの Use カテゴリを開いて Time Between Uses (既定では 1 秒) を変更することで、射撃の間隔、連射速度を調整できます。
他のサンプルの値を参考に 0.4 (秒) に変更しました。

TopDownEngine TestWeapon ProjectileWeapon コンポーネントの Time Between Uses を変更し、連射速度を調整します.

テスト

TestWeapon と弾薬の ItemPicker を拾った後、 T キーで装備・リロードします。
その後、マウスポインタの位置に照準が表示され、マウス左ボタンでその方向に射撃できました。

オートリロードの設定

前回の TestWeapon では、射撃の入力をしていても、弾がなくなると T キーでリロードしないと射撃ができませんでした。
弾切れになった際に射撃の入力をするとリロードするように設定します。

Auto Reload の設定

射撃の入力で弾切れの際にリロードも行うようにするには、ProjectileWeapon コンポーネントの Magazine カテゴリの Auto Reload を有効にします。
※テスト時間を短縮するため Magazine Size を既定値の 10 から 5 に変更しました。

テスト

先ほど追加した WeaponAim2D では AimControl が Mouse になっているので、射撃の入力はマウス左ボタンになり、照準はマウスポインタと一致します。

Auto Reload が OFF の状態では、残弾数が 0 になった後、射撃の入力(クリック)をしてもリロードが行われません。この場合はリロード専用 (今回は T キー) の入力が必要です。
Auto Reload が ON の状態では、残弾数が 0 になった後、射撃の入力(クリック)をするとリロードされます。Reload Time プロパティで 2 を指定しているので 2 秒後に弾が補充されます。

TopDownEngine ProjectileWeapon AutoReload により空のときに射撃しようとするとリロードが行われました。SS1

まとめ

今回は、Unity の見下ろし型ゲームの作成支援アセット「TopDown Engine」の公式レシピに沿って作成した銃プレハブに、指定した方向に射撃させる WeaponAim2D コンポーネントを追加し、ProjectileWeapon コンポーネントの設定で連射速度の変更と、残弾数が 0 の際に攻撃するとリロードされる Auto Reload について紹介しました。

参照サイト Thank You!

記事一覧 → Compota-Soft-Press

コメント

Ads Blocker Image Powered by Code Help Pro

お願い - Ads Blocker Detected

このサイトは広告を掲載して運営しています。

ポップアップを閉じて閲覧できますが、よろしければ

このサイト内の広告を非表示にする拡張機能をオフにしていただけませんか?

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

タイトルとURLをコピーしました