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

celsius IT

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

スポンサーリンク

成果物

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

ゲージの実装

スライダーの作成

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

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

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

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

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

ライフゲージも作る

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

コメント