Fix fighter material not removing the original material. #92

Merged
EIREXE merged 1 commits from material_fix into master 2026-10-13 08:24:45 +00:00
Showing only changes of commit 36f6b6783b - Show all commits
+22 -5
View File
@@ -1,10 +1,17 @@
use bevy::{gltf::GltfMaterialName, pbr::{ExtendedMaterial, MaterialExtension}, prelude::*, render::render_resource::AsBindGroup, shader::ShaderRef, world_serialization::WorldInstanceReady}; use bevy::{
gltf::GltfMaterialName,
pbr::{ExtendedMaterial, MaterialExtension},
prelude::*,
render::render_resource::AsBindGroup,
shader::ShaderRef,
world_serialization::WorldInstanceReady,
};
pub type FighterMaterial = ExtendedMaterial<StandardMaterial, FighterMaterialExtension>; pub type FighterMaterial = ExtendedMaterial<StandardMaterial, FighterMaterialExtension>;
#[derive(Component)] #[derive(Component)]
pub struct FighterMesh { pub struct FighterMesh {
pub fighter: Entity pub fighter: Entity,
} }
#[derive(Asset, AsBindGroup, Reflect, Debug, Clone, Default)] #[derive(Asset, AsBindGroup, Reflect, Debug, Clone, Default)]
@@ -64,12 +71,22 @@ pub fn bind_fighter_material(
continue; continue;
}; };
commands.entity(entity).insert((MeshMaterial3d(asset_materials.add(ExtendedMaterial { commands
.entity(entity)
.remove::<MeshMaterial3d<StandardMaterial>>()
.insert((
MeshMaterial3d(asset_materials.add(ExtendedMaterial {
base: StandardMaterial { base: StandardMaterial {
// can be used in forward or deferred mode // can be used in forward or deferred mode
..original_material.clone() ..original_material.clone()
}, },
extension: FighterMaterialExtension::new(bevy::color::palettes::css::BLUE.into()) extension: FighterMaterialExtension::new(
})), FighterMesh { fighter: scene_ready.entity })); bevy::color::palettes::css::BLUE.into(),
),
})),
FighterMesh {
fighter: scene_ready.entity,
},
));
} }
} }