You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spark AR调用Scene.create()创建场景对象报错如何解决?

报错原因

    1. 循环迭代变量声明错误:你在for循环中使用const声明迭代变量i,const声明的基础类型变量不允许重新赋值,循环执行i++时就会触发错误,调用栈指向Scene.create()属于错误定位偏差。
    1. 材质参数传入格式错误:Scene.create()的配置项中material字段不支持直接传入材质名称字符串,必须传入提前获取到的材质对象实例。
    1. 异步错误未捕获:你的async自执行函数没有添加错误捕获逻辑,所以会抛出Possible unhandled promise rejection类警告。

解决方法

按照如下规则修改代码即可:

  1. 将for循环的迭代变量i的声明关键词从const改为let
  2. 提前调用Materials.get()获取material1的实例对象,再传入Scene.create()的配置中
  3. 给async函数补充.catch()块捕获异步错误,方便后续排查问题

修改后的参考代码

const Scene = require('Scene');
const Materials = require('Materials');
const D = require('Diagnostics');

(async function () {
  const sprites = [];
  // 提前获取材质实例
  const material1 = await Materials.get('material1');

  // 把const改为let
  for (let i = 0; i < 3; i++) {
    const dynamicSprite = await Scene.create("PlanarImage", {
        "name": `sprite${i}`,
        "width": 0.1,
        "height": 0.1,
        "x": 0,
        "y": 0,
        "hidden": true,
        // 传入材质实例而非字符串
        'material' : material1
    });
    sprites.push(dynamicSprite);
  }
// 补充错误捕获
})().catch(err => D.log('报错信息:' + err));

如果修改后仍有问题,可以检查你的Spark AR版本是否高于v85,低于该版本的旧版引擎不支持Scene.create()动态创建对象的API。

内容的提问来源于stack exchange,提问作者Zurupupz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 00:15:05