0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【UE5】【C++】Unreal Engine C++のデリゲートについて【基本編2】

0
Last updated at Posted at 2026-08-03

今回は、Unreal Engine C++のデリゲートの基本について解説します。

本記事は、以下の記事の続編です。
まずは基本編をご覧いただくことをおすすめします。

【UE5】【C++】Unreal C++のデリゲートについて【基本編】

1. 型の宣言

発火したい.hで自作のデリゲートを宣言します
宣言後、DECLARE_MULTICAST_DELEGATEマクロ内に渡します

1つ 複数
DECLARE_DELEGATE DECLARE_MULTICAST_DELEGATE
//引数なし、戻り値なしのデリゲート型を宣言
DECLARE_MULTICAST_DELEGATE(FMultiCallback);

//「FMultiCallback」という自作のデリゲート型のインスタンスを作成
FMultiCallback MultiDelegate;

2. 発火のタイミング

cppに発火したいタイミングで処理を書きます。

1つ 複数
ExecuteIfBound() Broadcast()
FReply UOriginalParts::NativeOnMouseButtonDown(const FGeometry& InGeometry,const FPointerEvent& InMouseEvent)
{
    //左クリックでUIがクリックされた
    if (InMouseEvent.GetEffectingButton() == EKeys::LeftMouseButton)
    {
        // 発火(関数が登録されていれば実行する)
        MultiDelegate.Broadcast();

        return FReply::Handled();
    }

    return Super::NativeOnMouseButtonDown(InGeometry, InMouseEvent);
}

3. 関数の登録

呼び出したいクラスで関数を登録します

1つ 複数
BindUObject() AddUObject()
void UUMainHUD::NativeConstruct()
{
	if (Parts == nullptr) return;

	// HUDの関数を複数登録
	Parts->MultiDelegate.AddUObject(this, &UUMainHUD::OnCallFunction_1);
	Parts->MultiDelegate.AddUObject(this, &UUMainHUD::OnCallFunction_2);
	Parts->MultiDelegate.AddUObject(this, &UUMainHUD::OnCallFunction_3);
}

//発火時にこの関数を呼ぶ
void UUMainHUD::OnCallFunction_1()
{
	UE_LOG(LogTemp, Log, TEXT("Called MultiDelegate_1"));
}
void UUMainHUD::OnCallFunction_2()
{
	UE_LOG(LogTemp, Log, TEXT("Called MultiDelegate_2"));
}
void UUMainHUD::OnCallFunction_3()
{
	UE_LOG(LogTemp, Log, TEXT("Called MultiDelegate_3"));
}

4. 処理の確認

Video-Project-40.gif

他のデリゲートの記事は情報量が多くて自分には難しいものでした。
自分用に最小でまとめましたので皆さんのお役に立てれば嬉しいです!!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?