簡體   English   中英

ARcore - 不使用 TransformableNode 無法旋轉模型

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM