我正在尝试为 Qt3D 实体制作动画,而不必在每次基础对象的值发生变化时调用 QTransform 设置器。 QTransform 将引用作为 setTranslation、setMatrix 等的参数。人们会期望,当作为引用参数传递的对象的值发生变化时,变换将在下一次场景刷新时自动更新。但是我看到传递给 setTranslation 的引用被转换为一个值,这意味着对源引用对象的更改不会传播到 QTransform。
QVector3D position = QVector3D(1.0f, 2.0f, 3.0f);
Qt3DCore::QTransform transform = new Qt3DCore::QTransform();
transform->setTranslation(position);
qDebug() << transform->translation();
position.setX(2.0f);
qDebug() << transform->translation();
这个输出是:
QVector3D(1, 2, 3)
QVector3D(1, 2, 3)
但期望的结果是:
QVector3D(1, 2, 3)
QVector3D(2, 2, 3)
有没有什么方法可以将引用或指针传递给 QTransform,这样通过引用传递给其 setter 的对象的更改将自动传播到转换,而无需使用新值显式调用其 setter 之一?