下記BPを用意し、キー入力で宝箱を開ける処理を作りたいのですが、エラーが表示されうまくいきません。こちらに関して、どなたか原因と解決策をご教授いただけませんでしょうか。
▽用意したBP
①アクタコンポーネント
・キャラクターにアタッチする
・宝箱を開けるトリガーを宝箱に通知する役割を持たせたい
②宝箱
・トリガーで何かしらのイベント呼ぶ
▽発生している現象
・アクタコンポーネントをアタッチしたキャラクターでトリガーを入力すると、添付画像のエラーが表示され宝箱に通知を送れない
下記BPを用意し、キー入力で宝箱を開ける処理を作りたいのですが、エラーが表示されうまくいきません。こちらに関して、どなたか原因と解決策をご教授いただけませんでしょうか。
▽用意したBP
①アクタコンポーネント
・キャラクターにアタッチする
・宝箱を開けるトリガーを宝箱に通知する役割を持たせたい
②宝箱
・トリガーで何かしらのイベント呼ぶ
▽発生している現象
・アクタコンポーネントをアタッチしたキャラクターでトリガーを入力すると、添付画像のエラーが表示され宝箱に通知を送れない
左に何も接続していないSetを実行すると、その変数は空(None)になります
Noneの関数を呼ぼうとするとエラーになります
おそらくやりたかったのはValidatedGetかなと思います
見直してみてください
アドバイスありがとうございます!エラーが出る理屈は理解できました。
そこで、キー入力後の操作差をセットでなく検証済みゲットにしてみたのですが、今度はその後のカスタムイベントを通知しなくなりました・・(エラーログはでません)
かさねての質問になり恐縮なのですが、こちらはどういう理屈で通知が届いていないのか、お伺いできませんでしょうか。
ValidatedGetで動かなくなるということは、元々その変数に何も入っていないということです
ValidatedGetは参照がNoneの場合など、無効であるときに Is Not Valid
へ流れます
対象の変数をどこで、どのタイミングで設定しているのか見直してみてください
ご返信いただきありがとうございます!
変数[Chest ref]に何も入っていない、ということは理解できたのですが、object型の変数を有効化(isValidに出力する)するには、どのようなアプローチが考えられますでしょうか。
イベントビギン→変数のセットでは有効化することはできませんでした。
こちら、聞いてばかりも良くないので自分の方でも色々調べておりますが、可能であれば知恵をお借りできますと幸いです(直接的な答えでなく、ヒント程度でも嬉しいです・・!)
Chest、という名前とその後の操作から察するに、対象は宝箱でしょうか?
であれば、宝箱にアプローチする際にそれに近づき、BeginOverlap、あるいはTraceで対象のActorを取得(とCast)するはずです
Chest Ref
に入れるべき対象はそれです
デバッグ目的でBeginPlayで入れる場合は、GetActorOfClass、GetAllActorsOfClassを使用して、レベル上に存在するActorの参照を取得できます
いずれにしろ、どういった想定で、どのタイミングでそうあるべきなのかをきちんと想定する必要があります
Chest、という名前とその後の操作から察するに、対象は宝箱でしょうか?
仰る通り過です!
GetActorOfClassを使用し、ひとまず任意のアクションで宝箱を開けれるようになりました。本当にありがとうございます・・!
そして、今度は下記の問題点が浮上してきたため、こちらの解決に向けてアプローチしてみようと思います!多分またフォーラムに頼ることになりますが・・
①オーバーラップでチェストだけ(特定のアクタのみ)接触している、という判定の取り方が不明
②現在の処理では、一つのチェストしか開けない(複製したチェストは開けない)
このトピックは解決しましたので、一旦ベストアンサーとさせていただきます。
数字に渡ってのご協力、本当にありがとうございましたm(_ _)m
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.