diff --git a/Editor/Translator.cpp b/Editor/Translator.cpp index 6eaeec751..31d3f8aa4 100644 --- a/Editor/Translator.cpp +++ b/Editor/Translator.cpp @@ -598,6 +598,8 @@ void Translator::PostTranslate() TransformComponent* transform_selected = scene.transforms.GetComponent(x.entity); if (transform_selected != nullptr) { + XMFLOAT4X4 worldPrev = transform_selected->world; + transform_selected->UpdateTransform_Parented(transform); // selected to world space: @@ -613,6 +615,9 @@ void Translator::PostTranslate() transform_selected->MatrixTransform(XMMatrixInverse(nullptr, XMLoadFloat4x4(&transform_parent->world))); } } + + // Restore worldPrev, so velocity buffer is correctly updated: + transform_selected->world = worldPrev; } } }