Javascript/SparkAR 如何通过脚本访问plane tracker内的null对象?
Spark AR访问平面追踪器子节点报错解决方案
核心错误原因
- 直接从
Scene.root查找子层级的obj0,节点查找路径不匹配 - 数组解构时未声明
obj0变量,触发变量未定义报错 - 异步自执行函数末尾缺少调用符
(),函数逻辑不会主动执行
修复后代码
逐层查找写法(可读性更高)
const Scene = require('Scene'); (async function () { // 替换planeTracker0为你场景中平面追踪器的实际命名 const planeTracker = await Scene.root.findFirst('planeTracker0'); // 从平面追踪器实例下查找子节点obj0 const obj0 = await planeTracker.findFirst('obj0'); // 后续obj0的操作逻辑写在此处 console.log(obj0.name); })();
路径直接查找写法(更简洁)
const Scene = require('Scene'); (async function () { // 按层级路径直接查找,替换planeTracker0为你平面追踪器的实际命名 const obj0 = await Scene.root.findFirst('planeTracker0/obj0'); console.log(obj0.name); })();
注意事项
- Spark AR节点查找默认仅支持直接子节点匹配,跨层级查找需要填写完整路径,或逐层从父节点调用查找方法
- 平面追踪器放在Device节点外部不影响查找逻辑,只要确保代码中的平面追踪器命名和场景内设置一致即可
内容的提问来源于stack exchange,提问作者Diego Oriani
相关产品推荐
相关产品推荐

