読者です 読者をやめる 読者になる 読者になる

Redhuのゲーム開発Fragments

UnityやUEでゲームを作る際に学んだことを、これからなにか作りたい人に向けて。あるいは復習する自分に向けて記す。

自作ゲームリメイク中-ステータスとuGUIの連携編-(Unity制作)

今回は自機のステータスをuGUIに反映する連携編です

 

前回

自作ゲームリメイク中-カメラシステム編-(Unity制作) - Redhuのゲーム開発Fragments

 

まず自機の仕様として、エネルギー制を追加しました。

それに伴い、EN最大値・EN現在値・OB始動消費EN値・OB持続消費EN値・EN自然回復値の変数を用意しました。

ジャンプ、OB成立時、OB持続時に、それぞれエネルギーを消費します。(ジャンプによる消費はOB始動値を使ってます)

 

さて、ゲームとしてはこれらのステータス変動がちゃんと目に見えてなきゃいけません。

そこでuGUIと連動させる必要があります。uGUIについてはだいぶ前に軽くまとめてあります。

Unity4.6のuGUIについてのお勉強 - Redhuのゲーム開発Fragments

 

今回はImageの Image TypeをFilledにして、Fill Amountの値と連動させることで反映させる方法をとっています。画面中央の円形ゲージの右側半分がエネルギーゲージとなります(右側は装甲値の予定)

 

連動用として、Playerが持つ「PlayerBattleUI」というスクリプトを用意しました。

gista1268b7da3aaf880aacf

 

uGUIをスクリプトから弄るためには

using UnityEngine.UI;

の宣言が必要です。

その後、プレイヤーがシーンにあるUIカンバスを見つけて、その中にあるENゲージ用のimageを弄る対象としてセットします。

あとはそのFill Amountの値に、EN最大値/EN現在値 を算出して入れてあげればOKです。

今回は半円ゲージなのでFill MethodをRadial180にしてFill OriginをRightにしてます(もともと左側のゲージだったのでScaleを-1にして)

あとImageはデフォルトでアルファ値が100になるっぽいので薄いと感じたら255にしたり、飾りなのに主張し過ぎだとおもったら50に下げたり調節はしてみよう!

 

次はパーツごとにステータス設定してカスタマイズシステムの根っこを作るか。

はたまた銃を持って射撃攻撃可能となるか。気分次第ですw

 

次回>自作ゲームリメイク中-当たり判定・弾丸編-(Unity制作) - Redhuのゲーム開発Fragments

 

うに部屋さんに置かせて頂いているリメイク対象の旧作

unityroom.com