UE5/UE4 C++でアクターが削除中かをどうかを取得する(IsPendingKill)
C++でアクターが削除中かをどうかを取得する方法です。
こちらのサイトを参考にさせていただきました。
・Unreal Engine C++ 逆引きメモ
https://edom18.hateblo.jp/entry/2018/03/16/105506
「IsPendingKill」という関数で確認できるようです。
実際にこんな感じで記述してみました。
結果はこんな感じになりました。

ちゃんとログに「IsPendingKill()」と表示されています。
あまり使う機会はないかもしれないですが、こういうのも仕組みとして覚えておきたいですね。
こちらのサイトを参考にさせていただきました。
・Unreal Engine C++ 逆引きメモ
https://edom18.hateblo.jp/entry/2018/03/16/105506
まだ理解が浅いですが、Unityと同様、Destroyを実行しても即座にメモリから消えるわけではなく、ゲームとして破綻しないよう様々な終了処理が存在するはずです。
そのため、削除中、という状態が存在します。
「IsPendingKill」という関数で確認できるようです。
実際にこんな感じで記述してみました。
AActor* aActor;
// アクターを破棄
aActor->Destroy();
// 削除中かチェック
bool aIsKill = aActor->IsPendingKill();
if(aIsKill){UE_LOG(LogTemp, Log, TEXT("IsPendingKill()"));}
結果はこんな感じになりました。

ちゃんとログに「IsPendingKill()」と表示されています。
あまり使う機会はないかもしれないですが、こういうのも仕組みとして覚えておきたいですね。
| UE5 | 10:00 | comments:0 | trackbacks:0 | TOP↑