android - 如何在具有所有手势的 SceneView 中使用 TransformableNode?
问题描述
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 中使用的手势进行旋转和缩放。
解决方案
transformableNode.select()
创建节点后尝试调用(或简单地调用select()
应用块)。
推荐阅读
- abap - SAP 文档关于配置 RFC 用户
- asp.net - 基于重复的聚合日期
- wordpress - 如何解决:网站被重定向到另一个域?
- php - 如何从codeigniter上的user()函数获取其他字段
- android - 未解决的参考:ActivityScenario
- security - 二进制授权 - 部署失败 - 被证明者拒绝。证明者无法证明 GKE 中的图像
- r - Plumber API 接受用于 API 评分的图像
- python - 如何获取对象是其实例的所有类的列表?
- amazon-pay - 亚马逊支付沙盒重定向 url 更新
- artifactory - 将现有 Artifactory OSS 安装迁移到现有 Artifactory PRO 安装