0

我想知道如何在单击按钮时重置节点的缩放,我添加了一个具有旋转和缩放用户手势功能的 TransformableNode

我需要的是在所有事务之后,如果用户单击一个按钮,我需要将模型重置为其初始大小和旋转,

旋转工作正常,但缩放没有任何效果,我们该怎么做?以下是我用来重置节点的方法

private fun resetModel(){
    modelDragTransformableNode.localRotation = Quaternion.axisAngle(Vector3(0f, 0f, 0f), 00f)
    modelDragTransformableNode.localScale = Vector3(1f, 1f, 1f)
}

将节点添加到场景视图的方法

private fun addNodeToScene(model: ModelRenderable) {
    if (sceneView != null) {


        val transformationSystem = makeTransformationSystem()
         modelDragTransformableNode = NewDragTransformableNode(transformationSystem)


        modelDragTransformableNode.localPosition = Vector3(0f, -0.3f, -2.0f)
        modelDragTransformableNode?.renderable = model

        val collisionShape: Box = modelDragTransformableNode.collisionShape as Box
        sceneView.getScene().addChild(modelDragTransformableNode)

        val collisionShape2: Box = modelDragTransformableNode.collisionShape as Box
        modelDragTransformableNode.select()

        sceneView.getScene()
            .addOnPeekTouchListener { hitTestResult: HitTestResult?, motionEvent: MotionEvent? ->
                transformationSystem.onTouch(
                    hitTestResult,
                    motionEvent
                )
            }

    }
}
4

1 回答 1

0

比例没有更新,因为它由 ScaleController 的onUpdated方法控制。在设置比例之前尝试禁用比例控制器,然后再次启用它:

modelDragTransformableNode.getScaleController().setEnabled(false)

如果它不起作用,您始终可以使用带有公开setScale方法的自定义比例控制器(参见示例)。

于 2020-05-15T08:56:02.177 回答