以前、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が紐づいているオブジェクト)と紐づけること。