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.