diary主にゲーム開発関連についての記事を書きます。下記ドキュメントはUE4を触っている人は必ず目を通しておくべきだと思います。今回はこのドキュメントを参考にActorの解放処理についてみていきます。アクタのライフサイクルUE4でのデストラクタ結論から書くとデストラクタはUObjectを継承したクラスでは基本的に使用しません。~AEampleActor();UObjectを継承したクラスではBeginDestroyをOverrideすると良さそうです。これはオブジェクトがGC用にマークされた状態でも、まだ削除されていないときに呼び出されるものです。ゲームプレイ機能は後述のEndPlayで解放し、BeginDestroyでオブジェクトが使用していた全リソースを解放します。AExampleActor::BeginDestroy(){Super::BeginDestroy();}AActorを継承したクラスで明示的なDestroy呼び出し等による終了処理を記述したい場合にはEndPlayを使用します。EndPlayReason){Super::EndPlay(EndPlayReason);}他にも終了処理の過程にはDestroy関数やOnDestroyのようなデリゲートもありますがドキュメントを見た限りでは特別な理由がなければ終了処理はEndPlayで良さそうです。ReceiveEndPlayなどのReceive~系はC++側の処理が呼ばれる際に合わせて呼び出されるBlueprint側の処理になります。Blueprint側のEndPlay等は実際にはReceiveEndPlayを使用しています。まとめ終了処理を明示的に記述したい場合はEndPlayデストラクタの代替機能が欲しい場合はBeginDestroyUObjectを継承したクラスでは基本的にデストラクタを記述する必要はありません。C++でもどうしてもC++のnewを使いたいことがあるかもしれません。いった特殊なケースの場合はRuntime/Core/Public/HALUnrealMemory.hに目を通しておくと幸せになれるかもしれません。mallocやfree等々メモリーに関する処理が幾つか用意されています。»プロフィールid:PaperSloth主にゲーム開発関連についての記事を書きます。(1)はてなブログをはじめよう!PaperSlothさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。