A third party crate to mirror Component
values.
By default, it also provides a set of bevy Component
s
mirroring the values of [bevy_rapier
] Component
s.
(Currently only bevy_rapier3d
, PRs welcome!)
Since some of [bevy_rapier
] Component
s do not implement Reflect
,
they may be harder to work with.
This crate is especially useful with [bevy-inspector-egui
],
it will allow you to edit rapier values at run time,
so you don't have to restart your game repetitively
to find the right physics parameters.
Cargo.toml
.toml
[dependencies]
bevy_mod_component_mirror = "<current version>"
RapierMirrorsPlugins
to your app```rust use bevymodcomponent_mirror::RapierMirrorsPlugins;
app // Notice v the plural .add_plugins(RapierMirrorsPlugins);
```
That's it! Now every Entity
with the following rapier (3d) components
will automatically have an equivalent XyzMirror
component that automatically
syncs its value with it.
ImpulseJoint
Collider
(some collider shape are not implemented yet!)ColliderMassProperties
AdditionalMassProperties
If you wish to mirror other components, you need to do the following:
Component
(eg: ForeignMirror
)Mirror
trait for that component.From<&'a Foreign> for ForeignMirror
MirrorPlugin::<Foreign, ForeignMirror>::new()
to your app
```rust use bevymodcomponent_mirror::{Mirror, MirrorPlugin}; use bevy::prelude::*;
use foreign_crate::Foreign;
// Component: required because you want it to be a component
// Reflect: this let MirrorPlugin
register the Mirror
type itself
pub struct ForeignMirror { inner: f32, }
// Foreign → ForeignMirror
impl<'a> From<&'a Foreign> for ForeignMirror {
fn from(value: &'a Foreign) -> Self {
ForeignMirror {
inner: value.length(),
}
}
}
// ForeignMirror → Foreign
impl Mirror
fn main() {
let mut app = App::new();
app.add_plugin(MirrorPlugin::
```
If you don't need the definitions for the rapier components but still wish to use the mirror plugin, you can disable the rapier components with:
toml
[dependencies]
bevy_mod_component_mirror = { version = "<fill in>", default-features = false }
| bevy | bevyrapier3d | bevymodcomponentmirror |
|------|---------------|---------------------------|
| 0.9 | 0.20.0 | <current version>
|
Copyright © 2022 Nicola Papale
This software is licensed under either MIT or Apache 2.0 at your leisure. See licenses directory for details.