diff --git a/scene/3d/soft_body_3d.cpp b/scene/3d/soft_body_3d.cpp index fb6a45846cfa..540e70866a11 100644 --- a/scene/3d/soft_body_3d.cpp +++ b/scene/3d/soft_body_3d.cpp @@ -82,7 +82,10 @@ void SoftBodyRenderingServerHandler::commit_changes() { } void SoftBodyRenderingServerHandler::set_vertex(int p_vertex_id, const Vector3 &p_vertex) { - memcpy(&write_buffer[p_vertex_id * stride + offset_vertices], &p_vertex, sizeof(Vector3)); + float *vertex_buffer = reinterpret_cast(write_buffer + p_vertex_id * stride + offset_vertices); + *vertex_buffer++ = (float)p_vertex.x; + *vertex_buffer++ = (float)p_vertex.y; + *vertex_buffer++ = (float)p_vertex.z; } void SoftBodyRenderingServerHandler::set_normal(int p_vertex_id, const Vector3 &p_normal) {