GLTF inspector for playing around with object files
parent
e7a261ce36
commit
0147511426
Binary file not shown.
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…
Reference in New Issue