M_u
1
トップビューテンプレートプレイヤーの頭上に
HP用のシンプルゲージを表示しようとしています。
表示はされるのですが初期状態でも緑色で満たされません。
トップビューテンプレートエネミー(スライム)のゲージを参考に設定を見てみたところ
詳細設定のスタイルと塗りつぶしにチェックが入っていなかった為
チェックをしようとしましたが反応しません。
Godotモードに切り替えてチェックできるか試したところ
「リソースプロパティーの切り替えは無効です。代わりにリソースピッカーを使用して
プロパティーを変更してください」と言うメッセージが表示されます。
何が原因でしょうか?
あと、割合表示の数字の向きや表示位置は調整できないのでしょうか?
Baz
2
SimpleGauge は Godot の ProgressBar をベースに構築されており、緑色のバーは「Styles > Fill」にある StyleBox によって描画されています。スライムのゲージにはこれが設定されているものの、プレイヤーのゲージには設定されていないため、HP が最大でも何も表示されない理由になっている可能性があります。
チェックボックスが切り替わらないのは、Godot の仕様によるものです。リソースのプロパティをチェックボックスでオンにすることはできず、リソースを割り当てると自動的にチェックされます。
最も簡単な方法は、おそらくスライムの SimpleGauge をコピーしてプレイヤーに貼り付け、変数の設定をプレイヤーの HP に指し示すことです。
手動で行う場合は、Godot モードでプレイヤーのゲージを選択し、「Theme Overrides > Styles」に移動して、Fill の横にある <empty> スロットをクリックし、「New StyleBoxFlat」を選択します。新しい StyleBox を開き、Bg Color(背景色)を緑に設定すると表示されるはずです。同様に Background も行えば、背景色も取得できます。
パーセント表示についてですが、ProgressBar は常に中央に描画するため、それを移動する設定はないと思います。色、サイズ、輪郭線は「Theme Overrides > Colors」、「Font Sizes」、および「Constants」の下で変更できます。数字を別の位置に配置したい場合は、「Show Percentage」をオフにし、別のテキストを使用して数字を表示することをお勧めします。「Fill Mode」はバーが成長する方向を変更しますが、テキストは回転しません。ノード全体を回転させると、テキストも一緒に回転します。
M_u
3
丁寧に説明して頂きありがとうございます!
説明通り行う事でスライム側からコピーしなくても設定できました。
しかし、理想的には何処を参照するかの変数の設定はしょうがないとしても
参照する変数さえ設定すればゲージとして動作するほうが、使う側からすると
便利だとは思いますが
そこはGodotの仕様上、仕方のない部分だという事なんですね。
ご回答いただきありがとうございました!