壁に遮られたキャラクターのシルエットを表示する処理は以下のサイトを参考にできた。
【Unity】LWRPで、壁で遮られて見えないキャラクターをシルエット表示するのが超簡単にできた
さてそれでは、【UnityC#講座】HPゲージをfill Amountで作るなんかで作成したキャラクターに関連づけられたUIのHPバーはどうやってやればいいだろうか?
2つのマテリアルを用意する
まずuGUIのシェーダー(UI-Default.shader)を用意してシェーダーからマテリアルを作成する。
その辺のことは以下を参照。
【Unity】uGUIのシェーダーを改造してシェーダーを練習…のススメ
シェーダーはこんな感じで設定
設定したシェーダーから通常に表示する用のマテリアルUI_Default HpBarと、壁に隠れた部分を表示するマテリアルUI_Default HpBar_frontを作成する。
通常表示用のマテリアル
HPバーImageのマテリアルにUI_Default HpBarをアタッチする。
壁に隠れた部分のマテリアル
UI_Default HpBar_frontのインスペクターでRender QueueをAlphaTestに設定しておく。
こちらはLWRPでの設定に使う。
LWRPに設定をRender Objectを追加
HPバーに新たなレイヤーを設定して、【Unity】LWRPで、壁で遮られて見えないキャラクターをシルエット表示するのが超簡単にできたの【手順2】でキャラクターのシルエットを設定したのと同様に、HPバーの壁に隠れた部分のマテリアル設定を追加する。
【手順3】にしたがってHPバーの通常表示を設定すればOK!