簡體   English   中英

如何使用 ARcore 場景(非 AR)識別旋轉手勢?

[英]How to recognize rotation gesture with ARcore scene (non AR)?

我想在非 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
        }
    }
}

想象一下旋轉手勢。 您將兩根手指放在屏幕上並以相反的方式移動它們。 因此,要制作類似的功能,您需要獲取兩個觸點並檢查它們的運動是否為圓形且方向相反。

你會在這里找到如何做到這一點的好例子Android 兩指旋轉

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM