如何移除颤振中的AR核心节点



我是扑动的新手,尤其是arcore_flutter_plugin。我已经完成了初始化和显示ArCoreNodes,但我找不到删除/删除这些已经初始化的节点的方法。如何初始化节点:

@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text(entity),
),
body: ArCoreView(
onArCoreViewCreated: _onArCoreViewCreated,
enableTapRecognizer: true,
),
),
);
}
void _onArCoreViewCreated(ArCoreController controller) {
arCoreController = controller;
_addEntityNode(arCoreController);
}
void _addEntityNode(ArCoreController controller) {
final entityNode = ArCoreReferenceNode(
name: entity,
objectUrl:
"${objectKeys[entity.toLowerCase()]["3d_model_URI"]}",
position: vector.Vector3(
0, 0, -1
),
);
arCoreController.addArCoreNode(entityNode);
}

其目的是在节点不在上下文中/未选中时删除这些节点。

您可以使用removeNode函数来执行此操作。它接受一个参数,即要删除的节点的名称。

因此,在代码中这样做的方法是:

@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text(entity),
),
body: ArCoreView(
onArCoreViewCreated: _onArCoreViewCreated,
enableTapRecognizer: true,
),
),
);
}
void _onArCoreViewCreated(ArCoreController controller) {
arCoreController = controller;
_addEntityNode(arCoreController);
}
void _addEntityNode(ArCoreController controller) {
final entityNode = ArCoreReferenceNode(
name: entity,
objectUrl:
"${objectKeys[entity.toLowerCase()]["3d_model_URI"]}",
position: vector.Vector3(
0, 0, -1
),
);
arCoreController.addArCoreNode(entityNode);
/*below code is for making the execution sleep for 10 seconds so you can see the node
initialize and then disappear after ten seconds. The main part to note is the removeNode
function*/ 
await Future.delayed(const Duration(seconds: 10));
arCoreController.removeNode(entityNode);
}

顺便说一句,我们都有相同的用户名真是个奇迹,哈哈

最新更新