Broadcast()
UEで使うC++コードについて調べています。
今回は、「Broadcast()」です。
※作業環境:UEバージョン5.3.2
今回のドキュメント参照URL
dev.epicgames.com
Just a moment...
上記が使えない場合はこちらからリンク先へ移動できます→UEドキュメントサイトへ
・・・自習中・・・
// 例
DECLARE_DYNAMIC_MULTICAST_DELEGATE(FEnemyDiedDelegate);
FEnemyDiedDelegate EnemyDiedDelegate;
Enemy->EnemyDiedDelegate.AddDynamic(this, &AEnemySpawner::OnEnemyDied);
EnemyDiedDelegate.Broadcast();
Broadcast()
デリゲートにバインドされたすべての関数を呼び出すために使用します。
デリゲートに関連付けた関数を、Broadcast()で実行する感じです。
例コードの説明
DECLARE_DYNAMIC_MULTICAST_DELEGATE(FEnemyDiedDelegate)
「FEnemyDiedDelegate」という、マルチキャストデリゲート型を宣言しているマクロです。(FEnemyDiedDelegateは自作)
「DECLARE_DYNAMIC_MULTICAST_DELEGATE」は、C++とブループリントの両方で使用できるデリゲートを作成するためのマクロです。
FEnemyDiedDelegate EnemyDiedDelegate
FEnemyDiedDelegate型の変数を作成しています。
これを使って、他の関数を関連付けていきます。
Enemy->EnemyDiedDelegate.AddDynamic(this, &AEnemySpawner::OnEnemyDied)
「Enemy」クラスの「EnemyDiedDelegate」に関数を関連付けています。
「this」は現在のクラス、「AEnemySpawner::OnEnemyDied」は、関連付ける関数を指定しています。
EnemyDiedDelegate.Broadcast()
「EnemyDiedDelegate」に関連付けた関数をすべて実行します。
他の記事を探す
他の記事も気になる方は、以下の記事の目次を確認ください。