ScreenRayCaster в QML не дает никаких отзывов
Я следую за своим предыдущим постом ScreenRayCaster в QML
Я просто тестирую тип ScreenRayCaster в очень простой сцене, вот часть моего qml-кода:
import Qt3D.Core 2.0
import Qt3D.Render 2.11
import Qt3D.Input 2.0
import Qt3D.Extras 2.0
import QtQuick 2.0
Entity {
Camera {
id: camera
projectionType: CameraLens.PerspectiveProjection
fieldOfView: 45
nearPlane : 0.1
farPlane : 1000.0
//aspectRatio: 1.2
position: Qt.vector3d( 0.0, 0.0, 100.0 )
upVector: Qt.vector3d( 0.0, 1.0, 0.0 )
viewCenter: Qt.vector3d( 0.0, 0.0, 0.0 )
}
components: [
RenderSettings {
activeFrameGraph: ForwardRenderer {
camera: camera
clearColor: "transparent"
}
pickingSettings.pickMethod: PickingSettings.TrianglePicking
},
InputSettings { }
]
Entity {
id: testEntity
objectName: "testItem"
PhongMaterial {
id: materialTest
diffuse: Qt.rgba(1.0, 0.0, 0.0, 1.0)
ambient: Qt.rgba(0.7, 0.7, 0.7, 1.0)
}
SphereMesh {
id: meshid
radius: 5
}
Transform {
id: transformid
}
components: [ meshid, materialTest, transformid]
}
ScreenRayCaster {
id: screenRayCaster
onHitsChanged: {
console.log("onHitsChanged")
printHits("Screen hits", hits)
}
}
MouseHandler {
id: mouseHandler
sourceDevice: MouseDevice {}
onReleased: {
console.log("mouseHandler onReleased")
screenRayCaster.trigger(Qt.point(mouse.x, mouse.y))
}
}
function printHits(desc, hits) {
console.log(desc, hits.length)
for (var i=0; i<hits.length; i++) {
console.log(" " + hits[i].entity.objectName, hits[i].distance, hits[i].worldIntersection.x, hits[i].worldIntersection.y, hits[i].worldIntersection.z)
}
}
Проблема в том, что даже если я нажму на красную сферу, она никогда не перейдет к onHitsChanged
обратный вызов, как у меня нет пересечений. Результаты только "mouseHandler onReleased"
, что доказывает, что триггерная функция вызывается.
Любые советы? Спасибо