I’m working on a custom editor plugin in UE 5.7 and I’m creating a transform gizmo from a custom UEdMode.
The gizmo is created using:
TransformProxy = NewObject<UTransformProxy>(this);
TransformProxy->AddComponent(RootComponent);
ActiveGizmo = UE::TransformGizmoUtil::CreateCustomTransformGizmo(
GizmoManager,
ETransformGizmoSubElements::FullTranslateRotateScale,
this);
ActiveGizmo->SetActiveTarget(TransformProxy);
ActiveGizmo->SetVisibility(true);
The gizmo manager comes from:
GetInteractiveToolsContext()->GizmoManager
and I also register the transform gizmo context object before creating the gizmo.
The gizmo is definitely being created:
- TransformProxy is valid
- ActiveGizmo is valid
- no errors are reported
- gizmo meshes (GizmoArrowHandle, GizmoPlaneHandle, etc.) are loaded
However, the gizmo becomes completely invisible whenever a Post Process Volume is active in the level.
If I disable the Post Process Volume, the gizmo appears normally.
The Post Process Volume is Unbound and contains standard post-processing settings (exposure, lighting, etc.). I am not intentionally modifying gizmo rendering.
My question is:
Is there a supported way to force a UCombinedTransformGizmo / TransformGizmoUtil gizmo to render on top of post-processing in UE 5.7?
Or is there a recommended way to make custom editor gizmos ignore Post Process Volumes?
I would prefer not to modify engine assets or replace the default gizmo materials if possible.
Thanks!