我想在非AR场景中旋转渲染对象。 TransformableNode只允许我水平旋转节点,但是我想在Y和Z轴上旋转它们。
我的布局中有一个SceneView,并在他的场景上设置了一个onTouchListener来管理手势。
我该如何管理这些手势?
private fun addNode(model: ModelRenderable?){
val ts = TransformationSystem(resources.displayMetrics, FootprintSelectionVisualizer())
model.let {
node = TransformableNode(ts)
node.setParent(scene)
node.localPosition = Vector3(0f, -2f, -7f)
node.localScale = Vector3(3f, 3f, 3f)
node.worldScale = Vector3(5f, 5f, 5f)
node.renderable=it
node.rotationController.isEnabled = true
node.scaleController.maxScale = 2f
node.scaleController.minScale = 0.1f
node.translationController.isEnabled = true
scene.addChild(node)
scene.setOnTouchListener { hitTestResult, motionEvent ->
Log.d("ontouchScene", motionEvent.toString())
ts.onTouch(hitTestResult, motionEvent )
true
}
}
}
答案 0 :(得分:1)
想象一下旋转手势。您将两个手指放在屏幕上,并以相反的方式移动它们。因此,要实现类似的功能,您需要同时获得两个接触点,并检查它们的移动是否为圆形并且方向相反。
如何做到这一点的好例子,您将在Android Two finger rotation
中找到