Enemyというキャラクタークラスをキャストして中のEnemyHPを取得したいのですがオブジェクトのピンに何を繋げたらいいのか分かりません。
プレイヤーならコントローラーやキャラクターを繋げてキャストすれば取得できるのですがプレイヤーじゃないキャラクタークラスの場合は何を繋げたらいいのでしょうか?
Enemyというキャラクタークラスをキャストして中のEnemyHPを取得したいのですがオブジェクトのピンに何を繋げたらいいのか分かりません。
プレイヤーならコントローラーやキャラクターを繋げてキャストすれば取得できるのですがプレイヤーじゃないキャラクタークラスの場合は何を繋げたらいいのでしょうか?
こんにちは
実装する内容にもよりますが、Castしたい対象を用意し、Castするのが一般的かと思います。
例えば、画像を見た所、HPに関するものですので、Hit Event時にOther ActorなどをObjectとしてCastするなどです。
Castそのものは、CastしたいObjectを用意する必要があるため、先程のHit EventやOverlap Eventなどで、Castしたい対象を事前に用意する必要があります。
[Castに関するDocument][1]
また、デバック目的で使用するのでしたら、EnemyClass内にTickでPrintStringを実行すると良いでしょう。
その際、PrintStringのDurationを0にし、In Stringには、Build String (float)で、何の値なのかを明記しておくと見やすいかと思います。
画像は、PrintStringに関するものです。
こちらの回答でよろしければ、こちらの質問を解決済みにするようよろしくお願いします。
また、なにかありましたら、お書きください。
Event Any Damage とかEvent HitみたいなやつからOther Actorを取得するか、ポーンに変数「Enemy」を用意して、レベルブループリントで「Enemy」に該当するアクタを代入するか、EnemyにあらかじめGet Player Controller→Get Owning Pawn→Cast to 「使ってるポーン」→ポーンで用意してある「Enemy」にSelfを代入するか…
いずれにしても、Enemyという変数を受け取る必要があります。例えばレベルにいくつものEnemyがあるとき、どのEnemyのHPを表示するのか指定しなきゃならないでしょう。