[英]ARCore TransformableNode sets localPosition to [x=0.0, y=0.0, z=0.0] after dragging
[英]ARcore - Can't Rotate Model without using TransformableNode
我正在創建一個 AR 應用程序,但我的一個模型的方向錯誤。
我需要它旋轉但不允許用戶通過觸摸旋轉它。 加載后,它必須保持相同的方向。
我嘗試了下面的代碼和 TransformableNode。
AnchorNode anchorNode = new AnchorNode(anchor);
if (imageName.equals("fox")){
anchorNode.setLocalRotation(Quaternion.axisAngle(new
Vector3(0f, 0, 1f), 180f));
}else
anchorNode.setLocalRotation(Quaternion.axisAngle(new
Vector3(1f, 0, 0f), -10f));
anchorNode.setRenderable(modelRenderable);
arFragment.getArSceneView().getScene().onAddChild(anchorNode);
試試下面的代碼代碼:
// Imaginary anchor – example 1
float[] position = { 0, 0, -0.5 };
float[] rotation = { 0, 0, 0, 1 };
Anchor anchor = session.createAnchor(new Pose(position, rotation));
// Imaginary anchor – example 2
Anchor anchor = hitResult.createAnchor();
///////////////////////////////////////////////
AnchorNode anchorNode = new AnchorNode(anchor);
anchorNode.setParent(arFragment.getArSceneView().getScene());
// 180 Degrees CCW
Quaternion rotation180 = Quaternion.axisAngle(new Vector3(0.0f, 0.0f, 1.0f), 180);
// 10 Degrees CW
Quaternion rotation010 = Quaternion.axisAngle(new Vector3(1.0f, 0.0f, 0.0f), -10);
TransformableNode node = new TransformableNode(arFragment.getTransformationSystem());
node.setParent(anchorNode);
node.select();
if (imageName.equals("fox")) {
node.setLocalRotation(rotation180);
Node foxxy = new Node();
foxxy.setParent(node);
foxxy.setRenderable(modelRenderable);
} else {
node.setLocalRotation(rotation010);
Node notFox = new Node();
notFox.setParent(node);
notFox.setRenderable(modelRenderable);
}
arFragment.getArSceneView().getScene().onAddChild(node);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.