我使用的是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);