前回に引き続き、ScriptableObjectを使ったパラメータの変更例について紹介したいと思います。
戦闘シーンでは、敵からの攻撃によってこちらのHPを減らす必要がありますし、回復アイテムを使用した場合には、逆にHPを増やすといった処理を行う必要があります。
今回は、各プレイヤーの回復に対応するボタンをそれぞれ用意して、ボタンが押されたらコンソールに体力回復と出力したいと思います。
【Unity】RPGにおけるパラメータの変更例について
前回作成しておいた主人公データと同様に、もう1人仲間用のアセットファイルを作成します。
こんな感じですね。デフォルトでは空欄及び0になっているので、とりあえず名前とパラメータの初期値を適当に入力しておきます。HPだけは、maxHPより小さい値を設定します。
ボタンを2つ配置して、テキストにそれぞれ誰を回復させるのかを入力します。
パラメータを変更するCharacterParamスクリプトの作成
ボタンを押したらHPを回復させるスクリプト「CharacterParam」スクリプトを新規作成します。
後ほど設定しますが、ボタンを押した際の引数が「player1」ならば主人公を回復し「player2」ならば仲間1を回復させます。
それぞれの最大HPと現在のHPを比較して、現在のHPが最大HPより少なければ10回復させるようにしています。CharacterDataスクリプトに回復量の項目を用意してプレイヤーによって回復量を変更させても良いでしょうね。
スクリプトを保存したら、それぞれのボタンにアタッチします。
ボタンのインスペクターから各プレイヤーのアセットファイルを設定し、ボタンが押された際にCommandメソッドを実行するようにします。文字列には先ほど説明した引数をキャラクターに応じて入力します。上は主人公の例です。
ゲームを実行して、体力が回復するか見てみましょう。
これくらいの事なら単純で簡単なんですけど、キャラクターのステータス画面を作ったり戦闘シーンを実装するとまた結構ややこしくなってくるんですよね。