最終更新:
orika_ex_miyako 2023年06月25日(日) 16:03:28履歴
この手順では、その武器のデータベースを活用し、現在、プレイヤーの使用している武器の情報を管理する機能を実装します。
手順19 ー使用している武器の情報の管理機能ー
PlayerController スクリプトには、武器の情報が各変数で用意されていますが、現在は固定値で利用しているため、
どのような武器を使っているか、という情報もなく、また、武器のデータ(攻撃力や射程)はゲーム内においては変化しません。
そのため、この手順では、次の手順において、武器の切り替え機能を実装するにあたり、現在使用している武器の情報を管理できるようにし、
また、その武器のデータを固定値ではなく、使用している武器に応じて設定を行えるように処理を修正します。
武器のデータについては、前の手順で作成した WeaponDataSO スクリプタブル・オブジェクトの情報を活用することにより、
データベースとして登録されている武器の情報をゲーム内に反映できる仕組みに修正を行います。
前回の手順で作成した武器のデータベースである WeaponDataSO スクリプタブル・オブジェクトをゲーム内で利用できるようにします。
スクリプタブル・オブジェクトは今後も増えていく可能性がありますので、特定のクラスに専属で管理をさせることにより、
すべての処理をそのクラス経由で参照する設計にします。
そのためのクラスとして DataBaseManager クラスをシングルトンデザインパターンとして作成しておきます。
他にもデータベースの機能を有する情報を管理する場合には、こちらのクラスで管理を行う設計にしています。
DataBaseManager.cs
スクリプトを作成したらセーブします。
PlayerController スクリプトのアタッチされているゲームオブジェクトを選択してインスペクターより、
hp 変数以外の武器の設定情報に関連する値をすべて 0 に設定してください。
今回 PlayerController スクリプト内に新しく追加した ChangeBulletData メソッドを利用することで、
これらの武器の設定値について、WeaponDataSO スクリプタブル・オブジェクトの情報を引数を通じて受け取り、
その情報を各変数に設定をします。
そのため、ゲーム実行前のデータはすべて 0 ですが、ゲームが実行された際には各変数に情報が代入されることになります。
この機能が実装できることで、次の武器の切り替え処理が実装出来るようになります。
インスペクター画像

以上で設定は完了です。
処理の流れを理解した上で、ゲームのデバッグを行うようにしましょう。
どのような処理が実装されており、それによって、どういった処理が作られているかを理解しておくことにより、
万が一、エラーが発生した場合や、調整を行いたいような場合においても修正を行うことが出来るようになります。
ゲームを実行し、PlayerController のアタッチされているゲームオブジェクトのインスペクターを確認します。
武器の情報を表す各変数が WeaponDataSO スクリプタブル・オブジェクトのデータの内容に切り替わっていれば、制御成功です。
ゲーム実行前

ゲーム実行時

以上でこの手順は終了です。
=> 次は 手順20 ー使用する武器の切り替え機能ー です。





コメントをかく