Как использовать TransformableNode в SceneView со всеми жестами?

Жесты TransformableNode не работают с объектом в SceneView.

Я показываю 3D-объект в SceneView. Когда я предоставляю TransformableNode в качестве первого дочернего элемента сцены SceneView, жесты не работают. Но если проделать то же самое с ArFragment, то все работает.

private fun createNode() {
    val transformationSystem = makeTransformationSystem()
    val transformableNode = TransformableNode(transformationSystem).apply {
        rotationController.isEnabled = true
        scaleController.isEnabled = true
        translationController.isEnabled = false // not support
        setParent(sceneView.scene)
        this.renderable = myRenderable // Build using CompletableFuture
    }

    sceneView.scene.addOnPeekTouchListener { hitTestResult, motionEvent ->
        transformationSystem.onTouch(hitTestResult, motionEvent)
    }
}

private fun makeTransformationSystem(): TransformationSystem {
    val selectionVisualizer = FootprintSelectionVisualizer()
    return TransformationSystem(resources.displayMetrics, selectionVisualizer)
}

Я хочу, чтобы мой 3D-объект в SceneView мог вращаться и масштабироваться с помощью жестов, которые используются в TransformabelNode.


person mohit26chauhan    schedule 08.07.2019    source источник


Ответы (1)


Попробуйте вызвать transformableNode.select() после создания узла (или просто вызовите select() в блоке apply).

person Cole Tomlinson    schedule 08.07.2019