dimforge / dimforge/rapier

One-way platform support for the KinematicCharacterController

Open
#502 0 comments 1 reaction 0 assignees View on GitHub
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.