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); }
こんな感じでやったら上手くいった。
今こんな感じで、赤がHPゲージで緑が経験値にしようと思ってる。
でもこのままだとステータスのHPと関連づけられてないから修正しないと。
次やりたいこと
- HPゲージと経験値ゲージを完成。
- ステータステーブル