イベントディスパッチャーに関する質問があります。私はこのように自分のコードでディスパッチャを作成しました:イベントディスパッチャー呼び出しコード関数
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FSoundPausedDelegate, bool, isSoundPaused);
UPROPERTY(BlueprintAssignable)
FSoundPausedDelegate AudioPause;
これは青写真で完璧に動作します。しかし、私は本当に知らない、どのようにコード内の関数を呼び出すことができますか?
AudioPause.AddDynamic(this, &UAudioController::OnDelegateBroadcast);
私はそれをバインドしなければならない。
は、私はで何かをするつもりだと思いますか?これは、青写真でオーディオを一時停止/一時停止解除し、ブロードキャストされた値に応じてより多くのコードロジックを実行するたびに、値をブロードキャストするためのものです。
void UAudioController::OnDelegateBroadcast(bool SoundPaused)
{
if (SoundPaused == true)
{
SoundPause = true;
GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Red, TEXT("True"));
}
else
{
SoundPause = false;
GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Red, TEXT("False"));
}
}
本当にために参考になった:また、このイベントのためにC++から(たとえば
UAudioListener
用)他のオブジェクトを購読することができ:レベルの青写真で、ポーズの変更のためにサブスクライブする方法を示し、以下の実施例私!魅力のように働き、答えがとても深く説明されているのを見てよかった!ありがとうございます:3 – Avengar