我想知道如何才能重置一个节点在点击按钮时的缩放比例,我已经添加了一个TransformableNode,其功能是根据用户的手势进行旋转和缩放。
我需要的是在所有的交易之后,如果用户点击了一个按钮,我需要重置模型到它的初始尺寸和旋转。
旋转工作正常,但缩放没有任何效果,怎么办呢?以下是我用来重置节点的方法。
private fun resetModel(){
modelDragTransformableNode.localRotation = Quaternion.axisAngle(Vector3(0f, 0f, 0f), 00f)
modelDragTransformableNode.localScale = Vector3(1f, 1f, 1f)
}
用于将节点添加到sceneview的方法。
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
)
}
}
}
缩放比例没有更新,因为它是由ScaleController的控制的。onUpdated
方法。尝试在设置比例尺之前禁用比例尺控制器,然后再次启用。
modelDragTransformableNode.getScaleController().setEnabled(false)
如果不行的话,你可以使用带有暴露的自定义比例控制器 setScale
方法 (例证).