我是arcore的新手,正在为项目使用Sceneform。具体来说,我正在使用太阳能系统示例,并尝试将其在Planet.java中的信息卡实施到我的项目中。我已经设置了信息卡(至少我认为是的),但是它们不会出现在水龙头上。我是否缺少某些东西或我做错了什么?预先感谢您的帮助。

private void makeinfoCards(ArFragment arFragment, Anchor anchor, Context context) {
        if (infoCard == null) {
            AnchorNode anchorNode = new AnchorNode(anchor);
            infoCard = new Node();
            infoCard.setParent(anchorNode);
            infoCard.setEnabled(false);
            infoCard.setLocalPosition(new Vector3(0.0f, 2.90f * INFO_CARD_Y_POS_COEFF, 0.0f));
            //below would hide/bring up the info card on tap
            infoCard.setOnTapListener(  //anchorNode.setOnTapListener doesn't make info card appear either
                    (hitTestResult, motionEvent) -> {
                        infoCard.setEnabled(!infoCard.isEnabled());
                    }
            );
            ViewRenderable.builder()
                    .setView(arFragment.getContext(), R.layout.card_view) //putting context instead makes no difference
                    .build()
                    .thenAccept(
                            (renderable) -> {
                                infoCard.setRenderable(renderable);
                                TextView textView = (TextView) renderable.getView();
                                textView.setText("random");
                            })
                    .exceptionally(
                            (throwable) -> {
                                throw new AssertionError("Could not load plane card view.", throwable);
                            });
        }

}

最佳答案

您已在infoCard节点上设置了onTapListener,默认情况下已禁用它。您应该在包含将要单击的3D模型的节点上使用setOnTapListener,尝试将已将3D模型设置为可渲染的特定节点作为函数的参数而不是Anchor传递。如果您有Node,请说具有3D模型的modelNode。

在您的ARActivity通话中

makeInfoCard(arFragment,modelNode,context);


并在功能上使用

private void makeInfoCard(ArFragment arFragment, Node modelNode, Context context){
//
    modelNode.setOnTapListener((hitTestResult, motionEvent) -> {
        infoCard.setEnabled(!infoCard.isEnabled());
    });
//
}

关于java - ARCORE:点按后不显示 View (信息卡),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59831335/

10-09 07:12