FirstPersonCharacterにCastされるのはわかりますが、銃の方にCastする場合、Getはどこから引っ張ればいいのですか?
GameHUDの動画の回で、前の画像のノードを作らないとHealthValueなどのprogress barがエラーを吐くのはわかったので、銃のBPから「マガジンの球数」、「射撃モード」などの関数をHUDの方に反映させたいです。
最初の講義の際のプロジェクトファイルを改造すれば「マガジンの球数」は一応反映させることができたのですが、UE5の新規プロジェクトで作った場合、「Fire」のイベントノードがBP_FirstPersonCharacterではなく、BP_WeaponConponentにあります。講義プロジェクトの場合はget player character からobjectを引っ張ればいいのですが、UE5の場合はobjectをどこに指定すればいいのかという感じです。
新規で作成中のブループリントで困ってるようですね。
新規プロジェクトの場合どんな作りになっているのか知らないので具体的な説明ができない事ご了承ください。objectを引っ張ってくる方法は大きく見て二つあります。
1.レベル中にあるobjectから欲しいものを検索する方法
→ 非効率的でリスクもあるのであまりお勧めしません。
2.どこかに設定されてるobject変数からその情報をもってくる方法
→GetPlayerCharacter関数もこちらと同じですね。PlayerIndexのコントローラーがついているCharacterを返しているだけです。この場合は変数の設定が事前に必要になりますが、nullチェックをちゃんとすると特に問題は起こらないです。ですので自分としては2番の方法をお勧めします。
それではどんな事をすればいいのかですが、
1. BP_FirstPersonCharacterにBP_WeaponComponentに関する情報を保持させる
(
・BP_FirstPersonCharacterはGetPlayerCharacterからの情報をキャストすることで簡単に取得できると思います。
・BP_WeaponComponentは名前から見た感じComponentに見えますが、こちらがBP_FirstPersonCharacterに付けられているComponentであれば特に変数を作る必要はありません。
)
2. BP_FirstPersonCharacterのCastが成功したらそこからBP_WeaponComponentを引っ張ってくるの流れがいいかと思います。