Qt3D:带多摄像头控制器的多视图



我使用的是QML MultiViewport示例。

我想对cam1使用OrbitCameraController,对cam2使用FirstPersonCameraController。问题是,无论我在哪里移动鼠标,两个相机都会移动。

当我从viewport1移动鼠标,从viewport2移动FirstPersonCameraController时,如何使OrbitCameraController移动?

我使用QObjectPicker最终管理相机更改(实现是cpp,但QML的想法相同(

auto picker = new Qt3DRender::QObjectPicker(rootNode);
QObject::connect(picker, &Qt3DRender::QObjectPicker::pressed, [&](Qt3DRender::QPickEvent* pick) {
if (pick->viewport() == viewport1)
{
orbitCameraController->setEnabled(true);
firstPersonCameraController->setEnabled(false);
}
else if (pick->viewport() == viewport2)
{
orbitCameraController->setEnabled(false);
firstPersonCameraController->setEnabled(true);
}
});
rootNode->addComponent(picker);

最新更新