四則演算の順序ってやつは守ってくださいね
引き算は上から下を引きます
1から100を引けば-99になるので、一撃死は納得の結果です
あと、CharacterがDestroyされれば、当然Widget( GetPercent1
)で参照しているCharacter( MyChara
)もアクセスできなくなります
アクセス出来る状態かは IsValid
ノードで調べられるので、アクセスできないなら戻り値を強制的に0を設定するようにでもしてください
元記事はGameOver処理内でPauseをしているので結果的にエラーが出ないようになっているようですが、エラーチェックしないのは良くないと思います
現在こちらの記事を見ながらHPゲージが減少する床を作ってみたのですが以下画像のようなエラーが発生しました。UE4でとりあえずヒットポイントとダメージ、ついでに画面にHPバーを実装する - 思考が離散
一通りブループリントを見てみたのですが原因がわからず困っています・・・。
記事にはゲームオーバー処理をしていたのですが、こちらでは行っておらずDestroyActorまでにしているのですが、ここに問題があったりするのでしょうか。
床に乗った瞬間にダメージがだんだん減ることもなく、いきなり体力が0になりエフェクトが出てその後エディタに戻るとエラーとなります。
こういう形でエラーを回避します
完全にエラーが隠れると困る場合はPrintString等を挟んでわかるようにしておくと良いでしょう
回答していただきありがとうございます。
そういった鉄則があるのですね!覚えておきます(__)
変数(Health)のDefault値が100なのでそこから引いていくことができればよいということですよね。。
大変申し訳ないのですが、具体的にはどの部分を変更すればよろしいでしょうか(__)
記事を見ながらこの機能を搭載してみたいと思い挑戦してみたのですが初心者なこともあり理解が難しいことが多く。。お手数おかけしてすみません。
エラーの件、ありがとうございます。アクセスできなくなるということについて少し理解できました。
エラーチェックは行うほうが良いのですね(__)
追加で失礼します。上から下に引く部分の調整ができたました。
しっかりと1ずつダメージを受けるように設定が可能になりました。
ありがとうございます(__)
アクセス出来る状態かは IsValid ノードで調べられるので、アクセスできないなら戻り値を強制的に0を設定するようにでもしてください
↑↑↑↑
こちらのアドバイスについても理解を深められるように勉強していきたいと思います。
ありがとうございます。
今設定してみたところエラーを回避することができました!
PrintSpringは様々な使い方があるんですね(__)
とても勉強になります・・・!