オーバーラップしたアクターをDestroy Actorで破壊しようとするとエラーが出ます。

オーバーラップしたアクターを破壊しようとするとエラーが出ます。

そのアクターの破壊自体は出来るのですが、ForEachLoopの部分にエラーが出るようです。

Tickでやったり、ブランチでやったり試したのですが、いつもForEachLoopやブランチにエラーが出ます。

エラーの理由もよくわからないので、どうすれば良いのか分かりません。

回答よろしくお願いします。

ここで出力されているログの"pending kill" は、既に実体として存在していないObject(Null Object)に対して
DestroyActorを行っていることによるものです。
この問題解決方法として、DestroyActorの前にIsValidを追加してObjectそのものが存在しているかのチェックを行う方法や、Foreachを使用せずに、単純にOverlapのOtherActorPinをCastノードに接続して、1度のみチェックを行うようにして下さい。
こうすることで、存在しないObjectに対するDestroy処理を行わくなります。
宜しくお願いします。

単純にぶつかってきたActorをDestroyしたい場合は、OnComponentBeginOverlapのOtherActorをDestroyActorのTargetに繋げばぶつかって来たActorを削除出来ます。

添付されているスクリーンショットの状態ですとFlying_nortに何かがぶつかったらFlying_nort自身を削除してしまいます。その上でForEachLoopで既に消してしまったFlying_nortを削除しようとしているのでスクリーンショットのように大量のエラーが出てます。

上記の補足として処理を示します、赤枠の箇所が上記で説明した処理の概要です。
GetOverlappingActorsでもActorを取得できますが、イベント駆動型の設計思想で考えるとOverlapComponentから処理する方法が良いと思われます。

エラーの理由を詳しく教えてくださってありがとうございます。

とても参考になりましたし、合点がいきました。

回答ありがとうございました!

処理の流れまで教えてくださってありがとうございます。

その通りにしてみたところ、想定通りの動きになりました!

回答ありがとうございました!