GLTF inspector for playing around with object files

selection-refactor
Elijah C. Voigt 2 years ago
parent e7a261ce36
commit 0147511426

Binary file not shown.

@ -0,0 +1,46 @@
use bevy::{prelude::*, gltf::Gltf};
fn main() {
App::new()
.add_plugins((
DefaultPlugins,
))
.add_systems(Startup, startup)
.add_systems(Update, inspect)
.run();
}
#[derive(Debug, Resource)]
struct AssetRegistry {
gltfs: Vec<Handle<Gltf>>,
}
fn startup(server: Res<AssetServer>, mut commands: Commands) {
commands.insert_resource(AssetRegistry {
gltfs: server.load_folder("gltf").expect("Loading GLTF Assets").into_iter().map(|untyped| untyped.typed::<Gltf>()).collect()
});
commands.spawn(SpotLightBundle {
transform: Transform::from_xyz(0.0, 5.0, 0.0).looking_at(Vec3::ZERO, Vec3::Y),
..default()
});
commands.spawn(Camera3dBundle {
transform: Transform::from_xyz(1.0, 1.0, 1.0).looking_at(Vec3::new(0.0, 0.3, 0.0), Vec3::Y),
..default() });
}
fn inspect(mut events: EventReader<AssetEvent<Gltf>>, gltfs: Res<Assets<Gltf>>, mut commands: Commands) {
events.iter().for_each(|event| {
match event {
AssetEvent::Created { handle } => {
let gltf = gltfs.get(handle).expect("Fetch GLTF data");
commands.spawn(SceneBundle {
scene: gltf.named_scenes.get("Helmet").expect("Fetch board scene").clone(),
..default()
});
},
_ => ()
}
});
}
Loading…
Cancel
Save