Parcourir la source

Fix camera issue causing it to block component property changes in editor (#1466)

hershey5045 il y a 4 ans
Parent
commit
f6768ea880
1 fichiers modifiés avec 7 ajouts et 1 suppressions
  1. 7 1
      Gems/Atom/RPI/Code/Source/RPI.Public/View.cpp

+ 7 - 1
Gems/Atom/RPI/Code/Source/RPI.Public/View.cpp

@@ -160,13 +160,19 @@ namespace AZ
                         0,0,1,0,
                         0,0,0,1 };
             yUpWorld.StoreToRowMajorFloat12(viewToWorldMatrixRaw);
+            const AZ::Matrix4x4 prevViewToWorldMatrix = m_viewToWorldMatrix;
             m_viewToWorldMatrix = AZ::Matrix4x4::CreateFromRowMajorFloat16(viewToWorldMatrixRaw);
 
             m_worldToViewMatrix = m_viewToWorldMatrix.GetInverseFast();
 
             m_worldToClipMatrix = m_viewToClipMatrix * m_worldToViewMatrix;
 
-            m_onWorldToViewMatrixChange.Signal(m_worldToViewMatrix);
+            // Only signal an update when there is a change, otherwise this might block
+            // user input from changing the value.
+            if (!prevViewToWorldMatrix.IsClose(m_viewToWorldMatrix))
+            {
+                m_onWorldToViewMatrixChange.Signal(m_worldToViewMatrix);
+            }
             m_onWorldToClipMatrixChange.Signal(m_worldToClipMatrix);
 
             InvalidateSrg();