diff --git a/crates/bevy_scene/src/scene_loader.rs b/crates/bevy_scene/src/scene_loader.rs index 2dea805f92dba..ed5c82443cc0f 100644 --- a/crates/bevy_scene/src/scene_loader.rs +++ b/crates/bevy_scene/src/scene_loader.rs @@ -1,5 +1,5 @@ use crate::serde::SceneDeserializer; -use anyhow::Result; +use anyhow::{anyhow, Result}; use bevy_app::AppTypeRegistry; use bevy_asset::{AssetLoader, LoadContext, LoadedAsset}; use bevy_ecs::world::{FromWorld, World}; @@ -35,7 +35,17 @@ impl AssetLoader for SceneLoader { let scene_deserializer = SceneDeserializer { type_registry: &self.type_registry.read(), }; - let scene = scene_deserializer.deserialize(&mut deserializer)?; + let scene = scene_deserializer + .deserialize(&mut deserializer) + .map_err(|e| { + let span_error = deserializer.span_error(e); + anyhow!( + "{} at {}:{}", + span_error.code, + load_context.path().to_string_lossy(), + span_error.position, + ) + })?; load_context.set_default_asset(LoadedAsset::new(scene)); Ok(()) })