ちょこ

学生です。メモっぽく。

Unity 2Dゲーム開発日記 14日目 ~UI Image~

Canvasの中のImageにSendMessageしてみる。

HPのゲージのとこをUIのImageでやろうと思った。
Image image;
image.SendMessage("OnDamage");
みたいにやろうとしたらGameObjectじゃないぞって怒られた。そりゃそうだよね。
Imageいじりたいとき、どうやってやるんだろうって考えてた。
結果、CanvasにSendMessageすればいいのではとなった。

Player.cs

int damage;
public GameObject hpBar;

hpBar.SendMessage("OnDamage", damage);


HpBar.cs

    void OnDamage(int damage)
    {
        float rectWidth = image.rectTransform.sizeDelta.x;
        rectWidth = rectWidth - damage;

        if(rectWidth <= 0){
            rectWidth = 0;
        }
        image.rectTransform.sizeDelta = new Vector2(rectWidth, image.rectTransform.sizeDelta.y);
    }

こんな感じでやったら上手くいった。

f:id:chnr:20141231185907p:plain

今こんな感じで、赤がHPゲージで緑が経験値にしようと思ってる。
でもこのままだとステータスのHPと関連づけられてないから修正しないと。

次やりたいこと

- HPゲージと経験値ゲージを完成。
- ステータステーブル