首页 > 解决方案 > 重置默认比例 ARCore 可转换节点

问题描述

我正在使用 ArFragment 并且我正在尝试以编程方式更改作为 AnchorNode 子节点的 TransformableNode 的比例。我正在使用以下代码:

ar_scaleTest_button.setOnClickListener {

    for(node in fragment!!.arSceneView.scene.children) {
        if(node.children.size != 0) {
            val transNode = node.children[0] as TransformableNode

            if(transNode.isSelected) {
                Toast.makeText(it.context, 
                               "Scale was: "+transNode.localScale.toString(), 
                               Toast.LENGTH_SHORT).show()
                transNode.localScale = Vector3(1.0f, 1.0f, 1.0f)
            }
        }
    }
}

调试后,我意识到正在执行的方法是 Node 类中的 setLocalScale(),但它接收的是空值而不是 Vector3(1.0f, 1.0f, 1.0f)。我通过在第二行以下方法中放置一个断点来检查这一点,该方法永远不会到达:

public void setLocalScale(Vector3 var1) {
    Preconditions.checkNotNull(var1, "Parameter \"scale\" was null.");
    this.localScale.set(var1);
    this.applyTransformUpdateRecursively();
}

我们是否正确设置了比例?还有另一种方法可以做到这一点吗?非常感谢!

标签: javaandroidkotlinaugmented-realityarcore

解决方案


推荐阅读