Skip to main content

loadSubscene 加载子场景

loadSubscene

类型: MethodDeclaration

所属类: SceneContext

定义位置: scene.ts

描述

加载子场景

参数 sceneId: 场景ID

参数 offsetX: 对象偏移X

参数 offsetY: 对象偏移Y

参数

参数名类型描述默认值
sceneIdstring--
offsetXnumber-n0
offsetYnumber-n0

返回值

类型: Promise<void>

源代码

位置: 第 1055 行

public async loadSubscene(sceneId: string, offsetX: number = 0, offsetY: number = 0): Promise<void> {
// 推迟到栈尾执行
await Promise.resolve()
const scene = Data.getScene(sceneId)
// 偏移场景对象
if (offsetX !== 0 || offsetY !== 0) {
const shift = (nodes: SceneObjectDataDirectory) => {
for (const node of nodes) {
switch (node.class) {
case 'folder':
shift(node.children)
continue
default:
node.x += offsetX
node.y += offsetY
continue
}
}
}
shift(scene.objects)
}
// 如果不存在相同的子场景,添加到子场景列表
if (!this.subscenes.find(scene => scene.id === sceneId)) {
this.subscenes.push(scene)
}
// 创建场景对象并发送自动执行事件
const instances = this.loadObjects(scene.objects)
for (const instance of instances) {
instance.autorun()
}
}

文档生成时间:2025/7/7 12:07:06