我正在使用ArFragment,并且尝试通过编程方式更改TransformableNode的比例,该TransformableNode是AnchorNode的子级。我正在使用以下代码:
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();
}
我们是否正确设置了比例尺?还有另一种方法吗? 非常感谢!