【Unity】Imageを使ったヒットポイントの作り方

Unity

別の記事でスライダーを使ったHPバーを作りました。

今回は、画像を3つ使ってHPを一つずつ減らすようなHPを作っていきます。

HPバーの作り方を解説した記事はこちら↓

準備

ヒエラルキーで右クリック>UI>CanvasでHPようにキャンバスを作ります。

名前をHPCanvasとします。

作成したキャンバスを選択し、インスペクターで

次に、キャンバスの中にImageを3つ作ります。

ヒエラルキーで左クリック>UI>Imageを押して3つ作ります。

名前をHP1,2,3とします。

シーン上ではこんな感じ

次に、HPの画像を用意します。

画像をプロジェクトウィンドウにドラッグアンドドロップします。

2D画像は、そのままでは使えません。

画像を選択し、インスペクターでTexture Typeという項目を「Sprite(2D and UI)」に変更します。

これで、使えるようになりました。

先ほど作ったImageを選択します。インスペクターでSource Imageの項目の中に用意した画像を入れます。

全部のSource Imageに入れたらハートが表示されます。

あとは、ハートの位置を調節すれば

準備完了です。

スクリプトを書く

こちらのスクリプトを書きましょう。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class HitPoint : MonoBehaviour
{
    float playerHP = 3;
    [SerializeField] Image Hp1;
    [SerializeField] Image Hp2;
    [SerializeField] Image Hp3;
  

    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            playerHP -= 1;
        }

        if (playerHP == 2)
        {
            Hp1.GetComponent<Image>().enabled = false;
        }

        if (playerHP == 1)
        {
            Hp2.GetComponent<Image>().enabled = false;
        }

        if (playerHP == 0)
        {
            Hp3.GetComponent<Image>().enabled = false;
        }
    }
}

このスクリプトをアタッチしたいオブジェクトにアタッチします。

僕の場合は、HPを管理する空のオブジェクトにアタッチします。

画像を入れる項目があるので、Canvasの中に作ったImageを入れていきます。

これで実行をしますと

クリックをするたびにHPが1ずつ減ります!

スクリプトの解説

using UnityEngine.UI;

 を追加して、Imageを扱えるようにします。

   if (Input.GetMouseButtonDown(0))
        {
            playerHP -= 1;
        }

この部分でクリックをするたびに、プレイヤーのHPをー1します。

if (playerHP == 2)
        {
            Hp1.GetComponent<Image>().enabled = false;
        }

        if (playerHP == 1)
        {
            Hp2.GetComponent<Image>().enabled = false;
        }

        if (playerHP == 0)
        {
            Hp3.GetComponent<Image>().enabled = false;
        }

ここで、プレイヤーのHPと数値を比較し、一致した場合。

取得したImageをfalseにして、画像を非表示にします。

というようなものになります。

プレイヤーのHPが減る条件をオブジェクトの衝突で扱えればそれっぽくなります。

まとめ

以上がImageを使ったヒットポイントの作り方でした。

コメント

タイトルとURLをコピーしました