如何解决ARCore Flutter 将节点放置到平面后更改其位置
我正在尝试使用 ARCore 和 Flutter 为项目制作 AR 应用程序。使用 arcore_flutter_pluggin 提供的文档,我可以使用 controller.onPlaneTap = _handleOnPlaneTap
在飞机上放置一个节点
问题是一旦将节点放置在平面上,我就无法更改节点的位置。
我尝试了几种方法,例如使用状态作为位置的参考
void _addSphere(ArCoreController controller) {
final ArCoreMaterial material = ArCoreMaterial(
color: Colors.cyan[400],);
final ArCoreSphere sphere = ArCoreSphere(
materials: <ArCoreMaterial>[material],radius: 0.1,);
sphereNode = ArCoreNode(
shape: sphere,position: vector.Vector3(positionX,positionY,positionZ),);
controller.addArCoreNode(sphereNode);
}
但是当我改变状态时,节点仍然没有从初始位置移动。
并且我还尝试使用 node.position.value = vector.Vector3(3,3,-1.5);
重新分配节点位置值(初始位置值为 position = vector.Vector3(0,0)
)。但它仍然没有从初始位置移动。我使用这种方法是因为在arcore_flutter_pluggin 提供的源代码中,他们使用下面的代码来更改材质值
void updateMaterials() {
debugPrint('updateMaterials');
if (sphereNode == null) {
return;
}
debugPrint('updateMaterials sphere node not null');
final ArCoreMaterial material = ArCoreMaterial(
color: color,metallic: metallic,roughness: roughness,reflectance: reflectance,);
sphereNode.shape.materials.value = <ArCoreMaterial>[material];
}
有什么帮助吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。