今回は、ユニティちゃんと敵の攻撃力を取得して、それぞれに対応するダメージ量を受けるようにします。
現時点では、誰のどんな攻撃でも相手に「1」しかダメージを与えられない仕様になっていますので、敵の種類によって受けるダメージ量を変更したいところですね。
プレイヤー及び敵の攻撃力を自由に変更する方法【Unity】
PlayerDataスクリプトの作成
CharacterDataを継承したEnemyDataスクリプトは過去の記事で作成していましたが、ユニティちゃん側を作成していなかったので新規でPlayerDataスクリプトを作成します。
HPや攻撃力などの共通項目は、CharacterDataスクリプトで既にフィールドを作成しているので、現状継承しているだけですね。プレイヤーのみ必要なデータなどがあったら今後ここに記述していけば良いですね。
スクリプトを保存したら、ユニティちゃん用のデータを作成します。
PlayerDataフォルダを作り右クリックし「Create」→「CreatePlayerData」を選択します。
Ofensive Powerがユニティちゃんの攻撃力になります。
UnityちゃんのHPをスライダーで表現する
これまでUnityちゃんのHPの増減をリンゴアイコンを使って表現していましたが、Unityちゃんの最大HPを仮に100として進めていくため、UIを変更しました。
Sliderコンポーネントを使った方が何かと都合が良いのでこちらを使います。
スライダーコンポーネントの使い方については、こちらで紹介していますので参考に。
PlayerStatusスクリプトの修正
ユニティちゃんのHPを取得してMaxlifeに代入します。
また、プレイヤー側ではHPの増減によってスライダーのvalueを変更させます。
EnemyStatusスクリプトの修正
敵スクリプトでも同様に、HPを取得するようにします。
Statusmanagerスクリプトの修正
Maxlifeとlifeをpublicに変更しただけですね。
Attackスクリプトの修正
キャラクターの攻撃力をStatusmanagerスクリプトのDamageメソッドに引き渡します。
スクリプトを保存したら、ユニティちゃんにはスライダーとUnitychanのデータをインスペクタから設定します。
敵も同様に敵データをAttackとEnemyStatusに設定してください。
敵の攻撃力を「10」、Unityちゃんの攻撃力を「5」にしています。
敵のHPは「20」、UnityちゃんのHPは「100」にしてあるので、上の動画のように4回Unityちゃんの攻撃がヒットしたら敵を倒せるわけですね。
スクリプトの修正を行う箇所が多かったものの、コード量が少ないので今回は全て画像にて投稿させてもらいますね。