動的デリゲート

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

Windows
MacOS
Linux

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

動的デリゲートの宣言

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

マクロ宣言

説明

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 の呼び出しを含むコードの前の場合が多い)

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

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback