diff --git a/packages/loader/src/SceneLoader.ts b/packages/loader/src/SceneLoader.ts index 1c357357b..623ca6dba 100644 --- a/packages/loader/src/SceneLoader.ts +++ b/packages/loader/src/SceneLoader.ts @@ -92,6 +92,7 @@ class SceneLoader extends Loader { scene.background.texture = texture; }); promises.push(backgroundPromise); + scene.background.textureFillMode = background.textureFillMode ?? scene.background.textureFillMode; } break; } diff --git a/packages/loader/src/gltf/GLTFSchema.ts b/packages/loader/src/gltf/GLTFSchema.ts index 974ef1e6f..1909e54d6 100644 --- a/packages/loader/src/gltf/GLTFSchema.ts +++ b/packages/loader/src/gltf/GLTFSchema.ts @@ -731,7 +731,7 @@ export interface IScene extends IChildRootProperty { /** * The indices of each root node */ - nodes: number[]; + nodes?: number[]; } /** diff --git a/packages/loader/src/gltf/parser/GLTFSceneParser.ts b/packages/loader/src/gltf/parser/GLTFSceneParser.ts index 9d3aebee3..ed5ffaef2 100644 --- a/packages/loader/src/gltf/parser/GLTFSceneParser.ts +++ b/packages/loader/src/gltf/parser/GLTFSceneParser.ts @@ -27,7 +27,7 @@ export class GLTFSceneParser extends GLTFParser { const engine = glTFResource.engine; const isDefaultScene = scene === index; - const sceneNodes = sceneInfo.nodes; + const sceneNodes = sceneInfo.nodes || []; let sceneRoot: Entity; if (sceneNodes.length === 1) { diff --git a/packages/loader/src/resource-deserialize/resources/schema/SceneSchema.ts b/packages/loader/src/resource-deserialize/resources/schema/SceneSchema.ts index 8adb4a306..d49b9aed0 100644 --- a/packages/loader/src/resource-deserialize/resources/schema/SceneSchema.ts +++ b/packages/loader/src/resource-deserialize/resources/schema/SceneSchema.ts @@ -1,4 +1,11 @@ -import { BackgroundMode, DiffuseMode, FogMode, ShadowCascadesMode, ShadowResolution } from "@galacean/engine-core"; +import { + BackgroundMode, + BackgroundTextureFillMode, + DiffuseMode, + FogMode, + ShadowCascadesMode, + ShadowResolution +} from "@galacean/engine-core"; import type { IReferable } from "@galacean/engine-core/types/asset/IReferable"; import type { IColor, IHierarchyFile, IVector3 } from "./BasicSchema"; @@ -13,6 +20,7 @@ export interface IScene extends IHierarchyFile { mode: BackgroundMode; color: IColor; texture?: IReferable; + textureFillMode?: BackgroundTextureFillMode; skyMesh?: IReferable; skyMaterial?: IReferable; };