如何在 ARCore Sceneform 中为节点创建动画(改变缩放、旋转或位置)?
How to create Animation (changing Scaling, Rotation or Position) for a Node in ARCore Sceneform?
我在 Android Studio 中使用 ARCore Sceneform
库。当节点设置为启用时,我很难找到一种方法来对节点执行缩放动画(例如 Quaternion
用于将太阳系中的节点旋转 Google)。
//On Tap Listener
scannerVisual.setOnTapListener(((hitTestResult, motionEvent) -> {
// NodeAnimator arrow = new NodeAnimator(true);
//arrow.setParent(scanner);
Node arrowVisual = new Node();
//Whosebug 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));
})
);
我有这样的东西。
您需要设置节点的局部比例 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);
希望对您有所帮助。
我在 Android Studio 中使用 ARCore Sceneform
库。当节点设置为启用时,我很难找到一种方法来对节点执行缩放动画(例如 Quaternion
用于将太阳系中的节点旋转 Google)。
//On Tap Listener
scannerVisual.setOnTapListener(((hitTestResult, motionEvent) -> {
// NodeAnimator arrow = new NodeAnimator(true);
//arrow.setParent(scanner);
Node arrowVisual = new Node();
//Whosebug 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));
})
);
我有这样的东西。
您需要设置节点的局部比例 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);
希望对您有所帮助。