Skip to main content

loadObjects 加载初始场景对象

loadObjects

类型: MethodDeclaration

所属类: SceneContext

定义位置: scene.ts

描述

加载初始场景对象

参数 objectList: 场景对象数据列表

返回值:已创建的场景对象实例列表

参数

参数名类型描述默认值
objectListSceneObjectDataDirectory--

返回值

类型: Array<PresetObject>

已创建的场景对象实例列表

源代码

位置: 第 1145 行

private loadObjects(objectList: SceneObjectDataDirectory): Array<PresetObject> {
const scene = this
const instances: Array<PresetObject> = []
const loader = new class ObjectLoader {
// 加载场景对象目录
load = (nodes: SceneObjectDataDirectory) => {
for (const node of nodes) {
loader[node.class](node as any)
}
}

// 加载文件夹
folder = (node: SceneObjectFolder) => {
loader.load(node.children)
}

// 加载角色
actor = (node: SceneActorData) => {
if (SceneContext.testConditions(node)) {
const actor = scene.createActor(node)
if (actor) instances.push(actor)
}
}

// 加载动画
animation = (node: SceneAnimationData) => {
if (SceneContext.testConditions(node)) {
const animation = scene.createAnimation(node)
if (animation) instances.push(animation)
}
}

// 加载粒子
particle = (node: SceneParticleData) => {
if (SceneContext.testConditions(node)) {
const emitter = scene.createParticle(node)
if (emitter) instances.push(emitter)
}
}

// 加载区域
region = (node: SceneRegionData) => {
if (SceneContext.testConditions(node)) {
const region = scene.createRegion(node)
instances.push(region)
}
}

// 加载光源
light = (node: SceneLightData) => {
if (SceneContext.testConditions(node)) {
const light = scene.createLight(node)
instances.push(light)
}
}

// 加载视差图
parallax = (node: SceneParallaxData) => {
if (SceneContext.testConditions(node)) {
const parallax = scene.createParallax(node)
instances.push(parallax)
}
}

// 加载瓦片地图
tilemap = (node: SceneTilemapData) => {
if (SceneContext.testConditions(node)) {
const tilemap = scene.createTilemap(node)
instances.push(tilemap)
}
}
}
// 加载场景对象
loader.load(objectList)
return instances
}

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