【Unity】RPGにおけるパラメータの変更例について

前回に引き続き、ScriptableObjectを使ったパラメータの変更例について紹介したいと思います。

戦闘シーンでは、敵からの攻撃によってこちらのHPを減らす必要がありますし、回復アイテムを使用した場合には、逆にHPを増やすといった処理を行う必要があります。

今回は、各プレイヤーの回復に対応するボタンをそれぞれ用意して、ボタンが押されたらコンソールに体力回復と出力したいと思います。

スポンサーリンク

【Unity】RPGにおけるパラメータの変更例について

前回作成しておいた主人公データと同様に、もう1人仲間用のアセットファイルを作成します。

仲間のパラメータを設定

こんな感じですね。デフォルトでは空欄及び0になっているので、とりあえず名前とパラメータの初期値を適当に入力しておきます。HPだけは、maxHPより小さい値を設定します。

回復ボタンの配置

ボタンを2つ配置して、テキストにそれぞれ誰を回復させるのかを入力します。

パラメータを変更するCharacterParamスクリプトの作成

ボタンを押したらHPを回復させるスクリプト「CharacterParam」スクリプトを新規作成します。

後ほど設定しますが、ボタンを押した際の引数が「player1」ならば主人公を回復し「player2」ならば仲間1を回復させます。

それぞれの最大HPと現在のHPを比較して、現在のHPが最大HPより少なければ10回復させるようにしています。CharacterDataスクリプトに回復量の項目を用意してプレイヤーによって回復量を変更させても良いでしょうね。

スクリプトを保存したら、それぞれのボタンにアタッチします。

各プレイヤーのボタン設定

ボタンのインスペクターから各プレイヤーのアセットファイルを設定し、ボタンが押された際にCommandメソッドを実行するようにします。文字列には先ほど説明した引数をキャラクターに応じて入力します。上は主人公の例です。

ゲームを実行して、体力が回復するか見てみましょう。

これくらいの事なら単純で簡単なんですけど、キャラクターのステータス画面を作ったり戦闘シーンを実装するとまた結構ややこしくなってくるんですよね。