Unity C#でライフゲージやステータスバーを表示・連動させる方法/Sliderの使い方

celsius IT

格ゲーなどでおなじみの、ライフゲージ等横棒ゲージの表示・連動方法です。
Sliderという機能を使うと、とても簡単に設置できます。

スポンサーリンク

成果物

ゲージを作り、ゲーム内のパラメータと連動させます。

ゲージの実装

スライダーの作成

弾をあまり連発できても面白くないので、間欠的にしか撃てなくしたんですが、「打てるようになるタイミング」をキャラの色で表現したところなんかしっくりこないので、
気力的な何かのゲージを作ることにします。ヒエラルキーで+(Create)UISliderと進みます。
Canvasをまだ作ってない場合、大体こんな感じで巨大なキャンバスとスライダーが作られるはずなので、
Canvasのレンダーモードスクリーンスペース-カメラにし、
Main Cameraをセットして、表示順も前に出しておきます。
好きな位置に配置し、サイズなどを調節します。

ハンドルとゲージ内の〇の除去

初期状態で表示されてるハンドルはゲーム内でプレイヤーが左右に動かすことができ、直接Valueを変更することができます。音量調節などではこのままでいいんですが、
今回は非表示にしたいので、ヒエラルキーのSlider配下にあるHandle Slide Areaをクリックして、
無効にしときます。これでハンドルは表示されなくなります。
初期状態のスライダーは最大値と最小値にValueを動かしても、左右にちょっとpadding的な余裕がある=ゲージが全て埋まらないので、
ヒエラルキーでFill Areaに入り、
Rect Transformの値を0にします。
さらにFill Area配下のFillにあるRect Transformを0にすれば、
ゲージの中にある〇を消すことができます。このへんはお好みですが。

スクリプトとゲージの連動

大体準備ができたので、最後にSliderのMax ValueMin Valueを設定します。今回は最大50、最低0としました。
プレイヤーキャラのスクリプトで名前空間でusing UnityEngine.UI;、クラス内でpublic Slider 変数名;を宣言します。
作ったスライダーをセットして、
スライダーの変数名.valueの値を足したり引いたりしてやれば、
「弾を撃てるタイミング」のゲージが完成します。

ライフゲージも作る

同様にライフゲージも作っていきます。名前は別にしておいて、
その他同様にセットしていきますが、どっちがどっちかわかりづらいので、
fillにあるImage内のを変更してやり、
隣と差別化します。
実行結果です。最大値は5としました。
やりたいことから逆引きするUNITYの使い方まとめ
Unityをやりたいことから学習していけるよう、機能・用途別にまとめたページです。C#の命令別の逆引きは現時点で作っていません。2019の時期に書き始めているので、それより前のバージョンについては言及しません。

コメント

モバイルバージョンを終了