When moving these components around in the world editor, the transform gizmo will move with the undo, but the actual component will not.
I could not repro this behavior with non-native components, it is only happening if the root component comes from a C++ native class.
1. Create a C++ actor that has a root component:
// Header file...
#pragma once
#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "TransactionTest.generated.h"
UCLASS(Blueprintable, BlueprintType)
class MY_PROJ ATransactionTest : public AActor
{
GENERATED_BODY()
public:
ATransactionTest ();
UPROPERTY(VisibleDefaultsOnly, BlueprintReadOnly)
USceneComponent* SceneRoot;
};
// Cpp file...
#include "ATransactionTest.h"
ATransactionTest::ATransactionTest()
{
SceneRoot = CreateDefaultSubobject<USceneComponent>(TEXT("SceneRoot"));
}
2. Create a blueprint class from the C++ class
3. Add any component (ex. Cube) to the blueprint actor
4. Place an instance of the blueprint into a level, move the Cube component on the instance
5. Hit CTRL+Z to undo moving the Cube
Expected results: Modifications to the component's properties properly undo when pressing CTRL+Z (ex. Tooltip appears saying "Undo: Move components")
Actual results: Tooltip appears saying "Undo: Clicking on Component (tree view)". Modifications to the component's properties do not undo when pressing CTRL+Z
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-105017 in the post.