Java 阿科雷–;如何为可转换节点设置默认比例?

Java 阿科雷–;如何为可转换节点设置默认比例?,java,android,augmented-reality,arcore,sceneform,Java,Android,Augmented Reality,Arcore,Sceneform,我正在使用Transformable节点,可以设置最小和最大刻度值。但我使用的模型的默认大小要大得多,所以我必须使用手势使其变小 如何设置模型/可转换节点的默认比例值?我认为在设置实际可渲染节点之前,可以使用TransformableNode的setLocalScale方法。就像下面的代码一样 TransformableNode andy = new TransformableNode(arFragment.getTransformationSystem()); andy.setLo

我正在使用
Transformable
节点,可以设置最小和最大刻度值。但我使用的模型的默认大小要大得多,所以我必须使用手势使其变小


如何设置模型/可转换节点的默认比例值?

我认为在设置实际可渲染节点之前,可以使用TransformableNode的setLocalScale方法。就像下面的代码一样

TransformableNode andy = new TransformableNode(arFragment.getTransformationSystem());
      andy.setLocalScale(new Vector3(0.1f, 0.1f, 0.1f));
      andy.setParent(anchorNode);
      andy.setRenderable(andyRenderable);
      andy.select();

我使用0.1f表示x、y、z值,这样看起来更好

您可以轻松使用此代码为可转换节点设置默认比例:

TransformationSystem arTS;
arTS = MainActivity.getArFragment().getTransformationSystem();

TransformableNode node = new TransformableNode(arTS);
node.setRenderable(modelRenderable);
node.getScaleController().setMinScale(0.1999f);
node.getScaleController().setMaxScale(0.2000f);
node.setLocalScale(exhibit.getModelScale());
node.setLocalPosition(exhibit.getModelPosition());
//node.setParent(anchorNode);
node.setParent(sceneView.getScene());

node.getRotationController().setEnabled(true);
node.getScaleController().setEnabled(true);

sceneView.getScene().addChild(node);
node.select();

imho为节点设置默认比例的最简单方法是在sfa文件中定义三维模型的比例属性

请注意,比例由
TransformableNode
ScaleController
的最大/最小值限定。您可以使用
transformableNode.GetScaleControl().setMaxScale(maxScale)
transformableNode.GetScaleControl().setMinScale(minScale)
来更改它。您能告诉我如何获得
transformableNode
以米为单位的缩放大小吗。假设我在y方向缩放一个立方体。现在我想得到它的比例大小,单位是米。请帮助我如何做到这一点?如果上述解决方案不起作用,您可能需要通过执行以下操作来设置最小比例。在我的例子中,现有的minScale是.75f andy.getScaleController().setMinScale(0.1f));我得到java.lang.IllegalStateException:执行此操作时,maxScale必须大于minScale。您确定MinScale和MaxScale可以相等吗?在这种情况下,您可以这样设置:
.setMinScale(0.1999f)