お世話になっております。
現在、以下のサイトを参考に、HPバーの表示テストを行っています。
自分の場合は敵が動かない想定で、画像のようにBPを組んだのですが、tickだと動作するのですがconstructだとUIがあらぬ方向へ行ってしまいます。
動かないのであれば、constructで最初に処理を走らせるだけで良いと思ったのですが、tickでなければ動作しない理由はなぜでしょうか?
お世話になっております。
現在、以下のサイトを参考に、HPバーの表示テストを行っています。
自分の場合は敵が動かない想定で、画像のようにBPを組んだのですが、tickだと動作するのですがconstructだとUIがあらぬ方向へ行ってしまいます。
動かないのであれば、constructで最初に処理を走らせるだけで良いと思ったのですが、tickでなければ動作しない理由はなぜでしょうか?
あらぬ方向、というのが具体的にどういった挙動をしているかが示されていないので、おそらく 自分が動いたらUIが画面に張り付いたまま一緒に移動する
あたりかと思いますが、その前提で回答します。
画面上のオブジェクトの情報は常に更新されます。
当然、 画面に写っている敵Actorの相対位置
も状況に従って変更されます。
さて、そこで件のBPの内容ですが、 Actorのスクリーン上(画面上)からみた座標を取得し、そこにUIを移動させる
処理になっています。
Player(Camera)もEnemyも動かない 場合は1度だけ呼び出せば良いですが、どちらか片方でも動いてしまう場合は、スクリーン上における座標が変わってしまうため、位置を更新をする必要が出てきます。
つまり、Constructだけではカバーしきれないわけですね。
ですので、Tickで位置更新をする必要があるわけです。
蛇足ですが、 いま画面上でどうなっているのか
をきちんと提示していただくほうが認識のズレがないぶん回答がしやすいです。
BPのみではわからない部分も多いです。
(諸事情により画面が見せられない場合は除きますが)
ご回答ありがとうございます。
なるほど、双方が動かない場合は一度で良いですが、どちらかが動くと動いたあとの座標は更新されないのですね。
ありがとうございました!