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

如何更简洁高效地批量获取场景对象与对应材质?

批量获取场景对象与材质的实现方法

只要你的对象、材质命名遵循固定的序号规则(如示例中的objectN、ObjectMat_N),就可以通过批量生成查找请求的方式省略逐行手写的代码,支持一次性处理任意数量的资源。核心逻辑是通过Array.from生成指定长度的数组,利用索引拼接资源名称批量生成查找请求,再通过Promise.all并行执行所有请求,最终返回的结果和逐行手写的效果完全一致。

核心实现代码

1. 批量获取场景对象

// 按需求修改总数量即可,这里设为50
const OBJECT_TOTAL = 50;
const badge = await Promise.all(
  Array.from({ length: OBJECT_TOTAL }, (_, index) => Scene.root.findFirst(`object${index}`))
);

2. 批量获取材质

const MATERIAL_TOTAL = 50;
const objectMaterial = await Promise.all(
  Array.from({ length: MATERIAL_TOTAL }, (_, index) => Materials.findFirst(`ObjectMat_${index}`))
);

可选优化:异常兜底

如果存在部分序号资源不存在的情况,可以添加 catch 逻辑避免整个查找任务失败,后续可自行过滤无效值:

const badge = await Promise.all(
  Array.from({ length: 50 }, (_, index) => 
    Scene.root.findFirst(`object${index}`).catch(() => null)
  )
);
// 过滤掉不存在的对象
const validBadgeList = badge.filter(item => item !== null);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 19:15:05