Как использовать TransformableNode в SceneView со всеми жестами? - PullRequest
0 голосов
/ 08 июля 2019

Жесты 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.

1 Ответ

1 голос
/ 08 июля 2019

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

...