Customizable Bevy Engine GLTF loading through a trait
APACHE-2.0 License
This is a fork of bevy /crates/bevy_gltf
, that doesn't change any functionalities, but provides several possibilities to customize
the conversion between gltf and bevy interns on load
using the trait GltfTrait
.
default: &["gltf", "glb"]
Material
usedStandardMaterial
sMesh
EntityWorldMut
(similar to EntityCommands
)Transform
and EntityWorldMut
of their parentSpotLight
, PointLight
or DirectionalLight
componentsEntityWorldMut
Transform
and EntityWorldMut
of their parentApp
on_app
to .register_type()
themThe original way of adding the plugin changes to:
fn main(){
let mut app = App::new();
app.add_plugins((
MinimalPlugins,
GltfPlugin::<()>::default(),
// ...
));
app.run();
}
..and can be modified with the trait to either replace or extend (using different extensions) scene imports.
#[derive(Reflect,Default)]
struct WhiteGltf;
impl GltfTrait for WhiteGltf {
const EXTENSIONS: &'static [&'static str] = &["myglb"];
type Material = StandardMaterial;
fn convert_material (mut convert:GltfTraitMaterial) -> Self::Material {
convert.material.base_color = Color::WHITE;
convert.material.base_color_texture = None;
convert.material
}
}
fn main(){
let mut app = App::new();
app.add_plugins((
DefaultPlugins,
GltfPlugin::<WhiteGltf>::default()
));
app.run();
}
bevy | bevy_gltf_trait |
---|---|
0.14 | 0.1 |