【问题标题】:How to use TransformableNode in SceneView with all gestures?如何在具有所有手势的 SceneView 中使用 TransformableNode?
【发布时间】:2019-07-08 13:15:31
【问题描述】:

TransformableNode 手势不适用于 SceneView 中的对象。

我正在 SceneView 上显示一个 3D 对象。当我将 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)
}

我希望 SceneView 中的 3D 对象能够使用 TransformabelNode 中使用的手势进行旋转和缩放。

【问题讨论】:

    标签: android arcore sceneform


    【解决方案1】:

    在创建节点后尝试调用transformableNode.select()(或在应用块中直接调用select())。

    【讨论】:

      猜你喜欢
      • 2021-05-31
      • 2015-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多