公開日:2023/06/25  更新日:2023/06/25

Unityでのパラメータ管理・表示

 Unityのゲーム制作ではキャラHP・攻撃力・防御力などのパラメータをどう管理し表示していくかが重要となるので、やり方の一例を紹介していく。

Unityでのパラメータ管理・表示目次

パラメータの成長
パラメータの表示
目次にもどる

パラメータの成長

 多くのゲームで「レベルが上がるとキャラのパラメータが上昇する」という成長システムを作る必要がある。
 前回の記事でレベルアップシステムを作成したが、レベルが上がったのに合わせてパラメータを上げて管理していく必要がある。
レベルアップシステム
 色々やり方はあるが、今回はレベルを代入することでパラメータが出る式を作ろうと思う。
 まずは、ScriptableObjectで必要なパラメータを作っていく。ScriptableObjectがよくわからんという人は以下の記事を確認してみてほしい。
ステータス管理
 今回は以下のようにパラメータを制作した。

 一番上のMAXHP、MAXMP、ATK、DEF、INT、AGIなどは最終的な能力値とする(これまでの記事でもダメージ計算などで使用している)。
 それとは別にCharaMAXHP、CharaMAXMP、CharaATK・・・といった変数を作った。これらはキャラのパラメータとする(後から装備やスキルのシステムを追加して、このキャラのパラメータに補正を加えたものが最終的な能力値となる予定)。
 GrowMAXHP、GrowMAXMP、GrowATK・・・といった変数を作った。これはキャラのレベルが上がった際のパラメータの伸びを左右する成長値となっている。
  FirstMAXHP、FirstMAXMP、FirstATK・・・といった変数を作った。これはレベル1の時の初期値である。

 Assetファイルには今回は以下のように入力してみた。


 続いて何でもいいがゲームオブジェクトを作り、「CharaStats」と名付けてプレイヤーのゲームオブジェクトの子要素とする。
 CharaStatsにスクリプトをアタッチする。内容は以下の通り。

 シリアル化を行っておりcharadataにはcharadataのAssetファイルをアタッチしている。
 そして、(成長値×(レベル-1))/任意の数+初期値という計算式を作り、キャラのパラメータに代入している。
目次にもどる

パラメータの表示

 ここまでで能力値の計算はできたので、次はテストも兼ねたパラメータ表示を行っていこうと思う。
 前々回の記事でメニュー画面の土台部分を作成している。
メニュー画面の作り方
 今回はこのメニューのキャラの画面を出した時に、計算したキャラのパラメータが表示されるようにしていきたい。
 以前の記事で作成したMenuinsideの子要素としてCharainside(空のゲームオブジェクトでいい)を作成する。
 Charainsideの子要素としてCharaHP、CharaMP、CharaATK・・というようにTextmeshproを各能力値の数だけ作成する。加えて「基礎パラメータ」とTextmeshproコンポーネントに記述したTextmeshproを一つ作成する。
 後は以下のように各Textmeshproの位置とサイズを調整する(下の7つについては基礎パラメータと書いてあるが各能力値のTextmeshpro。位置あわせのために入力しているだけで、スクリプトで書き換えるので問題はない)。

 先ほど作成したステータス計算スクリプトに以下のように記述を追加する。

 シリアル化しているので、各能力値のTextMeshProを指定しておく。
 計算した能力値の変数を含めた文字列を作っている($を前につけ変数の周りを{}で囲むことで文字列に変数を含められる)。後はそれを各TextMeshProに代入している。

 後はChara(Toggle)と今回作成したCharainsideとの紐付けを行う。
 Charaのインスペクターを見てToggleコンポーネントのOn Value Changedを確認しよう。

 以上のようにCharainsideをドラッグ&ドロップして指定し、GameObject.SetActiveを選択する。
 次にCharaに以下のスクリプトをアタッチする。
 ボタン用の汎用スクリプト。シリアル化しているので、ActiveObjectにはCharainsideを指定しておく。
 今回は普通に押した時の場合にCharainsideをアクティブ化するように処理をしている(他のToggleを選択するとCharainsideが非アクティブ化し再度Chara選択を行った時に表示されないため)。
 これで以下のようにchara選択時のみパラメーター表示され、他のToggleの際はパラメータが出なくなる。


 続きの記事は以下。
アイテム管理

Unityのゲーム制作まとめへ戻る

page top