Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 旋转手机时,Sceneform子节点相对于父节点移动_Android_Arcore_Sceneform - Fatal编程技术网

Android 旋转手机时,Sceneform子节点相对于父节点移动

Android 旋转手机时,Sceneform子节点相对于父节点移动,android,arcore,sceneform,Android,Arcore,Sceneform,在HelloSceneform中,在替换这些行时 TransformableNode andy = new TransformableNode(arFragment.getTransformationSystem()); andy.setParent(anchorNode); andy.setRenderable(andyRenderable); andy.select(); 。。。使用这些行,然后启动应用程序 Texture.bui

在HelloSceneform中,在替换这些行时

          TransformableNode andy = new TransformableNode(arFragment.getTransformationSystem());
      andy.setParent(anchorNode);
      andy.setRenderable(andyRenderable);
      andy.select();
。。。使用这些行,然后启动应用程序

  Texture.builder()
      .setSource(getApplicationContext(), R.drawable.boardbackground)
      .build()
      .thenAccept(backtexture ->
          MaterialFactory.makeTransparentWithTexture(getApplicationContext(), backtexture)
              .thenAccept(backmaterial -> {
                ModelRenderable backrenderable = ShapeFactory.makeCube(new Vector3(1f, 0.01f, 1f), Vector3.zero(), backmaterial);

                Node background = new Node();
                background.setLocalPosition(Vector3.up());
                background.setParent(anchorNode);
                background.setRenderable(backrenderable);


                Texture.builder()
                    .setSource(getApplicationContext(), R.drawable.img_20180609_115300)
                    .build()
                    .thenAccept(texture ->
                        MaterialFactory.makeTransparentWithTexture(getApplicationContext(), texture)
                            .thenAccept(material -> {
                              ModelRenderable renderable = ShapeFactory.makeCube(new Vector3(0.5f, 0.01f, 0.5f), Vector3.zero(), material);

                              Node foreground = new Node();
                              foreground.setLocalPosition(new Vector3(0.2f, 0.1f, 0f));
                              foreground.setParent(background);
                              foreground.setRenderable(renderable);
                            })
                    );

              })
      );
这会导致:即使子节点位于父节点上方,旋转手机也会导致子节点移动到父节点的后面

当子节点的中心或局部位置的值不同于0时,会发生这种情况


这个问题在7月份首先报告给ARCore,然后在8月底报告给Sceneform,但仍然被两个团队完全忽略。那样的话,阿科尔对我来说是完全不可用的。任何解决此问题的想法都是受欢迎的。

问题的解决方案是,使用
Renderable.setRenderPriority
手动设置渲染优先级。即使父对象和子对象是50cm appart并且存在父子关系,也会发生这种情况