プレイヤー及び敵の攻撃力を自由に変更する方法【Unity】

今回は、ユニティちゃんと敵の攻撃力を取得して、それぞれに対応するダメージ量を受けるようにします。

現時点では、誰のどんな攻撃でも相手に「1」しかダメージを与えられない仕様になっていますので、敵の種類によって受けるダメージ量を変更したいところですね。

スポンサーリンク

プレイヤー及び敵の攻撃力を自由に変更する方法【Unity】

PlayerDataスクリプトの作成

CharacterDataを継承したEnemyDataスクリプトは過去の記事で作成していましたが、ユニティちゃん側を作成していなかったので新規でPlayerDataスクリプトを作成します。

PlayerDataスクリプト

HPや攻撃力などの共通項目は、CharacterDataスクリプトで既にフィールドを作成しているので、現状継承しているだけですね。プレイヤーのみ必要なデータなどがあったら今後ここに記述していけば良いですね。

スクリプトを保存したら、ユニティちゃん用のデータを作成します。

PlayerDataフォルダを作り右クリックし「Create」→「CreatePlayerData」を選択します。

Unityちゃんのデータ

Ofensive Powerがユニティちゃんの攻撃力になります。

UnityちゃんのHPをスライダーで表現する

プレイヤーのUI

これまでUnityちゃんのHPの増減をリンゴアイコンを使って表現していましたが、Unityちゃんの最大HPを仮に100として進めていくため、UIを変更しました。

Sliderコンポーネントを使った方が何かと都合が良いのでこちらを使います。

範囲内に入ったらライフゲージや敵の名前を表示する【Unity】
今回は、敵の範囲内にプレイヤーが入ったら左上に敵の名前とライフゲージを表示させてみようと思います。 範囲内に入ったらライフゲージや敵の名前を表示する【Unity】 サーチ用のコライダは、プレイヤーか敵いずれかに設定する必要がありますが、私は...

スライダーコンポーネントの使い方については、こちらで紹介していますので参考に。

PlayerStatusスクリプトの修正

PlayerStatusスクリプト

ユニティちゃんのHPを取得してMaxlifeに代入します。

また、プレイヤー側ではHPの増減によってスライダーのvalueを変更させます。

EnemyStatusスクリプトの修正

EnemyStasuスクリプト

敵スクリプトでも同様に、HPを取得するようにします。

Statusmanagerスクリプトの修正

Statusmanagerスクリプト

Maxlifeとlifeをpublicに変更しただけですね。

Attackスクリプトの修正

Attackスクリプト

キャラクターの攻撃力をStatusmanagerスクリプトのDamageメソッドに引き渡します。

ユニティちゃんのインスペクタ

スクリプトを保存したら、ユニティちゃんにはスライダーとUnitychanのデータをインスペクタから設定します。

敵も同様に敵データをAttackとEnemyStatusに設定してください。

敵の攻撃力を「10」、Unityちゃんの攻撃力を「5」にしています。

敵のHPは「20」、UnityちゃんのHPは「100」にしてあるので、上の動画のように4回Unityちゃんの攻撃がヒットしたら敵を倒せるわけですね。

スクリプトの修正を行う箇所が多かったものの、コード量が少ないので今回は全て画像にて投稿させてもらいますね。