From bbec18d0300d817f0fa2cf5b63732a218b29d4c1 Mon Sep 17 00:00:00 2001 From: nvsickle Date: Wed, 14 Apr 2021 10:45:22 -0700 Subject: [PATCH] Fix initial camera position when working directly with Atom --- Gems/Camera/Code/Source/CameraComponentController.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Gems/Camera/Code/Source/CameraComponentController.cpp b/Gems/Camera/Code/Source/CameraComponentController.cpp index e66de5b95b..2799d897d6 100644 --- a/Gems/Camera/Code/Source/CameraComponentController.cpp +++ b/Gems/Camera/Code/Source/CameraComponentController.cpp @@ -98,15 +98,16 @@ namespace Camera AZ_Assert(m_atomCamera, "Attempted to activate Atom camera before component activation"); const AZ::Name contextName = atomViewportRequests->GetDefaultViewportContextName(); - atomViewportRequests->PushView(contextName, m_atomCamera); - AZ::RPI::ViewportContextNotificationBus::Handler::BusConnect(contextName); - // Ensure the Atom camera is updated with our current transform state AZ::Transform localTransform; AZ::TransformBus::EventResult(localTransform, m_entityId, &AZ::TransformBus::Events::GetLocalTM); AZ::Transform worldTransform; AZ::TransformBus::EventResult(worldTransform, m_entityId, &AZ::TransformBus::Events::GetWorldTM); OnTransformChanged(localTransform, worldTransform); + + // Push the Atom camera after we make sure we're up-to-date with our component's transform to ensure the viewport reads the correct state + atomViewportRequests->PushView(contextName, m_atomCamera); + AZ::RPI::ViewportContextNotificationBus::Handler::BusConnect(contextName); UpdateCamera(); } }