動的デリゲート

シリアライズ可能でおよびリフレクションをポートするデリゲート

動的なデリゲートはシリアライズすることができます。デリゲートの関数は名前で検索され、通常のデリゲートよりも動作が遅くなります。

動的デリゲートの宣言

動的デリゲートは、動的デリゲート固有の可変長マクロを使用する点を除いて 通常のデリゲートの宣言 と同じ方法で 宣言します。

マクロ宣言

説明

DECLARE_DYNAMIC_DELEGATE[_RetVal, ...]( DelegateName )

動的なデリゲートを作成します。

DECLARE_DYNAMIC_MULTICAST_DELEGATE[_RetVal, ...]( DelegateName )

動的なマルチキャスト デリゲートを作成します。

動的デリゲートのバインディング

ヘルパーマクロ

説明

BindDynamic( UserObject, FuncName )

動的デリゲートでBindDynamic() を呼び出すためのヘルパーマクロです。自動的に関数名の文字列を生成します。

AddDynamic( UserObject, FuncName )

動的なマルチキャストデリゲートで AddDynamic() を呼ぶヘルパーマクロです。自動的に関数名の文字列を生成します。

RemoveDynamic( UserObject, FuncName )

動的なマルチキャスト デリゲートで RemoveDynamic() を呼ぶヘルパー マクロです。自動的に関数名の文字列を生成します。

動的デリゲートの実行

デリゲートと結合している関数は、デリゲートの Execute() 関数を呼ぶと実行されます。デリゲートが結合しているかどうかを実行前に確認する必要があります。デリゲートに戻り値があり、初期化されておらず、後でアクセスされる出力パラメータを持つ場合があるため、 コードをより安全にする目的で行います。結合していないデリゲートを実行すると、 場合によってはメモリ上に実際に書き込まれることがあります。デリゲートの実行が安全かどうかは IsBound() を呼び出して確認できます。デリゲートに戻り値がない場合も ExecuteIfBound() を呼び出せますが、 初期化されていない可能性のある出力パラメータに注意してください。

実行関数

説明

Execute

結合をチェックせずにデリゲートを実行します

ExecuteIfBound

デリゲートが結合されているかを確認し、結合している場合は Execute を呼び出します

IsBound

デリゲートが結合されているかを確認します (Execute の呼び出しを含むコードの前の場合が多い)

マルチキャスト デリゲートの実行に関する詳細は「マルチキャスト デリゲート」を参照してください。

タグ
Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
キャンセル