Unity公式チュートリアルSurvival Shooter日本語実践Chapter.5

5.Health HUD

第5章では、ヘルス(HP)のHUDを作っていくよ。

UIの基本、Canvasを設置。

このCanvasにCanvasGroupコンポーネントをアタッチ。今まで使ったことがなかったので調べてみる。なんかよくわかんないけど、Canvasの構造が複雑になってきたりUIの配置が重なり合ってくると威力を発揮する感じなのかな?シンプルなゲームのうちはそんなに効果を実感できなさそう。

子オブジェクトを作成し、Anchorを設定。AnchorとPivotの違いの理解が曖昧だったので下記にて確認。

 

ライフを表すバーを設置

子オブジェクトの中に、ハート画像とスライダーを設置。スライダーはライフの値を表すものなので、ユーザーからインタラクトできなくていい。
スライダーの上限をライフの上限として100にする。初期値もInspectorから100に変更。

ここでトラブルが二つ。一つは、値を100にしてもスライダーが満たされずちょっと足りない

Sliderを追加した時、操作する必要がないのでHandleSlideAreaを削除した。そこに、丸いつまみがくっついていた。そのつまみの大きさの分だけ、ゲージの大きさが調整されてた、というわけ。

スライダーの値を変更すると警告が出まくってる

SendMessage cannot be called during Awake, CheckConsistency, or OnValidate
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

警告については原因不明みたい。Unityのバグ?

被弾時にわかりやすくするため、画面全体をフラッシュさせる。

UIImageを画面全体に一瞬表示することで表現する。フラッシュの色は後々スクリプトで制御するので、ここではいったんアルファ値を0にして透明にしておく。RectTransformの設定で画面全体に表示させられるのを初めて知った。

実装確認

スクリプト書いてないので大して確認するポイントはないが、ヘルスバーが表示されることと、Inspectorで値をいじってスライダーが動くことを確認。

5章はこれでおしまい。この章でのキモはCanvasGroupやね。

第6回はコチラ

第4回はコチラ

 

1件のコメントがあります

コメントを残す

メニューを閉じる