1

Sceneform在 Android Studio 中使用 ARCore 库。当节点设置为启用时,我很难找到一种方法来对节点执行缩放动画(就像Quaternion谷歌在太阳系中用于旋转节点的方法一样)。

//On Tap Listener
scannerVisual.setOnTapListener(((hitTestResult, motionEvent) -> {

        // NodeAnimator arrow = new NodeAnimator(true);
        //arrow.setParent(scanner);

        Node arrowVisual = new Node();

        //StackOverflow Solution
        arrowVisual.setLocalPosition(new Vector3(0.5f, 0.0f, 0.0f));
        arrowVisual.setLocalScale(new Vector3(0.03f, 0.03f, 0.06f));
        arrowVisual.setRenderable(arrowRenderable);
        arrowVisual.setParent(scanner);

        // arrowVisual.setLocalRotation(Quaternion.axisAngle(new Vector3(0.0f, 1.0f, 0.0f), 90));
    })
);

我有这样的东西。

4

1 回答 1

2

您需要设置节点的本地比例来before设置其父节点。代码应如下所示:

Anchor anchor = hitResult.createAnchor();
AnchorNode anchorNode = new AnchorNode(anchor);

node.getScaleController().setMinScale(0.5f);
node.getScaleController().setMaxScale(3.0f);

node.setLocalScale(new Vector3(2.25f, 2.25f, 2.25f));
node.setParent(anchorNode);

希望这可以帮助。

于 2018-10-18T00:07:18.593 回答