クリックゲーム開発

#9.敵のHPにゲージを連動させる方法

敵のHPに連動してUIゲージを連動させる

前回までで、 Procedural UI Image を使って、角丸のHPゲージを作り、ゲージを増減できるようなスクリプトを1から実装しました。

今回は、敵がダメージを受けたのに連動して、HPゲージを実際に増減させる方法について解説します。
角丸のHPゲージ

UIをPrefab化する

前回作った、スクリプト付きの UIHpGauge を Prefab にします。
HPゲージは、Enemy から生成して、値を Enemy から管理したいからです。

オブジェクトツリーを Prefab 化するには、
Hierarchy から Project フォルダへドラッグ&ドラップするだけです。

HPゲージUIオブジェクトツリーをPrefab化する

これで、Prefab ファイル化できました。
Prefab 化が確認できたら、Hierarchy のツリーから UIHpGauge は削除しておきましょう。

Enemy から UI Prefab を動的生成

HPゲージを Enemy 側から管理のため生成します。
Prefab から動的生成するには、Instantiate を使います。
ドラゴンを動的に生成する方法の時と同じです。

Enemy.cs の Awake で生成し UIのコードを保持。
Start 移行に値を入れるのがいいでしょう。
UI Hpゲージをエネミーから生成する

ゲージを更新する private メソッドを用意しておきましょう。
更新メソッドでは、前回の SetRate を呼んで FillAmount をセットしています。

HP と 最大HP が 整数型同士の場合、割り算をすると 0 か 1 にしかならなくなるので注意。

ダメージを受けたときゲージを操作

ダメージを受けたときに、先程用意した更新メソッドを呼ぶだけです。

Enemy.cs の Damage() 内の実装は以下のようになります。
UI Hpgauge の 更新メソッド

UIの破棄

最後に破棄です。
Enemy.cs の RequestDestroy で、破棄しましょう。
UI Hpgauge を Destroy する

このように Enemy が生成、Enemy が破棄という風に、
生成と破棄は1セットにしておくと、破棄忘れがなくなります。

終わりに

今回は、UI HPゲージを Enemy 側から管理する方法について解説しました。
3回に渡ってのHPゲージ編でした。

次回からエフェクト編です。つづく。