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回はコチラ
「Unity公式チュートリアルSurvival Shooter日本語実践Chapter.5」への1件のフィードバック