Files
UnrealEngine/Engine/Plugins/Experimental/SceneState/Source/SceneStateBlueprint/Public/SceneStateBlueprintDelegates.h
2025-05-18 13:04:45 +08:00

30 lines
1.0 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "Delegates/Delegate.h"
#include "UObject/ObjectPtr.h"
class UObject;
class USceneStateBlueprint;
namespace UE::SceneState::Graph
{
struct FBlueprintDebugObjectChange
{
/** The blueprint whose debug object got changed */
TObjectPtr<USceneStateBlueprint> Blueprint;
/** The new debug object */
TObjectPtr<UObject> DebugObject;
};
/**
* Delegate called when the debug object of a blueprint has changed.
* Blueprint Editor doesn't have a dedicated delegate for this and instead calls IBlueprintEditor::RefreshMyBlueprint, or IBlueprintEditor::RefreshEditors.
* Additionally, these refresh functions are not called in every place the debug object is changed (e.g. in UWorld::TransferBlueprintDebugReferences).
* This delegate solves this by broadcasting in USceneStateBlueprint::SetObjectBeingDebugged
*/
extern SCENESTATEBLUEPRINT_API TMulticastDelegate<void(const FBlueprintDebugObjectChange&)> OnBlueprintDebugObjectChanged;
} // UE::SceneState