首页 > 解决方案 > Qt3D : MultiView 与 MultiCamera 控制器

问题描述

我正在使用 QML MultiViewport 示例。

我想OrbitCameraController用于 cam1 和FirstPersonCameraControllercam2。问题是无论我在哪里移动鼠标,两个摄像头都会移动。

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

标签: qtqt3d

解决方案


我最终使用 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);

推荐阅读