Fix slightly incorrect snapping
This commit is contained in:
@@ -328,20 +328,20 @@ impl KinematicCharacterController {
|
|||||||
result: &mut EffectiveCharacterMovement,
|
result: &mut EffectiveCharacterMovement,
|
||||||
) -> Option<(ColliderHandle, TOI)> {
|
) -> Option<(ColliderHandle, TOI)> {
|
||||||
if let Some(snap_distance) = self.snap_to_ground {
|
if let Some(snap_distance) = self.snap_to_ground {
|
||||||
let snap_distance = snap_distance.eval(dims.y);
|
|
||||||
if result.translation.dot(&self.up) < 1.0e-5 {
|
if result.translation.dot(&self.up) < 1.0e-5 {
|
||||||
let offset = self.offset.eval(dims.y);
|
let snap_distance = snap_distance.eval(dims.y);
|
||||||
if let Some((hit_handle, hit)) = queries.cast_shape(
|
if let Some((hit_handle, hit)) = queries.cast_shape(
|
||||||
bodies,
|
bodies,
|
||||||
colliders,
|
colliders,
|
||||||
character_pos,
|
character_pos,
|
||||||
&-self.up,
|
&-self.up,
|
||||||
character_shape,
|
character_shape,
|
||||||
snap_distance - offset,
|
snap_distance,
|
||||||
false,
|
true,
|
||||||
filter,
|
filter,
|
||||||
) {
|
) {
|
||||||
// Apply the snap.
|
// Apply the snap.
|
||||||
|
let offset = self.offset.eval(dims.y);
|
||||||
let snap_distance = hit.toi - offset;
|
let snap_distance = hit.toi - offset;
|
||||||
if snap_distance.abs() > 1.0e-5 {
|
if snap_distance.abs() > 1.0e-5 {
|
||||||
result.translation -= *self.up * snap_distance;
|
result.translation -= *self.up * snap_distance;
|
||||||
|
|||||||
Reference in New Issue
Block a user