One-way platform support for the KinematicCharacterController
Open
2D
3D
A-Dynamics
C-Enhancement
D-Medium
P-Low
- Dominant language
- Rust
- Stars
- 5.7k
- Forks
- 387
- Avg merge
- 4d 23h
- Merged PRs (30d)
- 6
Description
### Overview
One-way platforms are not supported for the `KinematicCharacterController` because it doesn't depend on the "solver" to resolve collisions.
E.g. following the conventional approach and using PhysicsHooks will not work.
```rust
impl BevyPhysicsHooks for OneWayPlatformHook {
fn modify_solver_contacts(&self, context: ContactModificationContextView) {
context.raw.update_as_oneway_platform(...);
}
}
```
For the `KinematicCharacterController` to support one-way platforms, _"it would have to run some checks internally to ignore collisions with normals outside of a particular angle wrt. the up direction."_
Contributor guide
Assessment
This issue has not been assessed yet.