mirror of
https://github.com/bevyengine/bevy
synced 2024-12-02 01:19:12 +00:00
b6a647cc01
Adds a `default()` shorthand for `Default::default()` ... because life is too short to constantly type `Default::default()`. ```rust use bevy::prelude::*; #[derive(Default)] struct Foo { bar: usize, baz: usize, } // Normally you would do this: let foo = Foo { bar: 10, ..Default::default() }; // But now you can do this: let foo = Foo { bar: 10, ..default() }; ``` The examples have been adapted to use `..default()`. I've left internal crates as-is for now because they don't pull in the bevy prelude, and the ergonomics of each case should be considered individually.
37 lines
1.3 KiB
Rust
37 lines
1.3 KiB
Rust
use bevy::{asset::AssetServerSettings, prelude::*};
|
|
|
|
/// Hot reloading allows you to modify assets on disk and they will be "live reloaded" while your
|
|
/// game is running. This lets you immediately see the results of your changes without restarting
|
|
/// the game. This example illustrates hot reloading mesh changes.
|
|
fn main() {
|
|
App::new()
|
|
// Tell the asset server to watch for asset changes on disk:
|
|
.insert_resource(AssetServerSettings {
|
|
watch_for_changes: true,
|
|
..default()
|
|
})
|
|
.add_plugins(DefaultPlugins)
|
|
.add_startup_system(setup)
|
|
.run();
|
|
}
|
|
|
|
fn setup(mut commands: Commands, asset_server: Res<AssetServer>) {
|
|
// Load our mesh:
|
|
let scene_handle = asset_server.load("models/monkey/Monkey.gltf#Scene0");
|
|
|
|
// Any changes to the mesh will be reloaded automatically! Try making a change to Monkey.gltf.
|
|
// You should see the changes immediately show up in your app.
|
|
|
|
// mesh
|
|
commands.spawn_scene(scene_handle);
|
|
// light
|
|
commands.spawn_bundle(PointLightBundle {
|
|
transform: Transform::from_xyz(4.0, 5.0, 4.0),
|
|
..default()
|
|
});
|
|
// camera
|
|
commands.spawn_bundle(PerspectiveCameraBundle {
|
|
transform: Transform::from_xyz(2.0, 2.0, 6.0).looking_at(Vec3::ZERO, Vec3::Y),
|
|
..default()
|
|
});
|
|
}
|