以前、HPの減少を扱うscriptを作成する記事を書きました。
この変化するHPをゲージとして、画面上に表示していきたいと思います。
CanvasのSliderを使います。
大まかな流れ
(1):Sliderの配置
(2):SliderのValueにデータを反映するscriptを作成
(3):HPのデータと、Sliderのデータを接続
(1):Sliderの配置
hierarchyで、
Create > UI > Canvasを
Canvasの子階層にて
Create > UI > Sliderを選択してください。
POSX・POSYで好きな場所へSliderを合わせてください。
(Canvas・Sliderの細かい説明は省きます。)
最終的にやりたいことは、SliderのValueにHPを反映していくことです。
(2):SliderのValueにデータを反映するscriptを作成
CanvasにAdd Component でscriptをNew作成する。
(名称を PlayerUI とする)
public class PlayerUI : MonoBehaviour { public Slider slider;public void first(int maxHP) {
//maxValueとValueを初期設定slider.maxValue = maxHP;
slider.value = maxHP;
}
public void HPUpdate(int HP) {
//ここでvalueを反映slider.value = HP;
}
}
※CanvasのInspectorにて、表示されているSliderと、hierarchy上のsliderを紐づけ忘れずに
(3):HPのデータと、Sliderのデータを接続
前回の記事の
private void updateHP(float deltaHPacc) 関数に追記していきます。
public class PlayerManage : MonoBehaviour {public PlayerUI playerUI;
\\上記記事で作成した関数 private void updateHP(float deltaHPacc) { HPacc -= deltaHPacc; HP = Mathf.RoundToInt(HPacc); \\PlayerUI
のHPUpdate
メソッドを呼び出しているplayerUI.HPUpdate(HP);
} }
※public PlayerUI
をCanvas( PlayerUI scriptが紐づいているオブジェクト)と紐づけること。