Fix character controller jitter (#43)

* fix jitter while moving character controller

* added transform interpolation to character controller
This commit is contained in:
PROMETHIA-27
2025-06-19 03:27:59 -04:00
committed by GitHub
parent a2ea917c1e
commit e1abb02cb8
2 changed files with 28 additions and 24 deletions

View File

@@ -125,6 +125,30 @@ pub struct CharacterControllerBundle {
movement_factor: MovementSpeedFactor,
collision_events: CollisionEventsEnabled,
movement_config: MovementConfig,
interpolation: TransformInterpolation,
}
impl CharacterControllerBundle {
pub fn new(collider: Collider, controls: HeadControls) -> Self {
// Create shape caster as a slightly smaller version of collider
let mut caster_shape = collider.clone();
caster_shape.set_scale(Vector::ONE * 0.98, 10);
let config = match controls {
HeadControls::Plane => FLYING_MOVEMENT_CONFIG,
HeadControls::Walk => RUNNING_MOVEMENT_CONFIG,
};
Self {
character_controller: Character { up: Dir3::Y },
collider,
move_input: MoveInput::default(),
movement_factor: MovementSpeedFactor(1.0),
collision_events: CollisionEventsEnabled,
movement_config: config,
interpolation: TransformInterpolation,
}
}
}
#[derive(Bundle)]
@@ -183,25 +207,3 @@ const FLYING_MOVEMENT_CONFIG: MovementConfig = MovementConfig {
deceleration_factor: 0.0,
},
};
impl CharacterControllerBundle {
pub fn new(collider: Collider, controls: HeadControls) -> Self {
// Create shape caster as a slightly smaller version of collider
let mut caster_shape = collider.clone();
caster_shape.set_scale(Vector::ONE * 0.98, 10);
let config = match controls {
HeadControls::Plane => FLYING_MOVEMENT_CONFIG,
HeadControls::Walk => RUNNING_MOVEMENT_CONFIG,
};
Self {
character_controller: Character { up: Dir3::Y },
collider,
move_input: MoveInput::default(),
movement_factor: MovementSpeedFactor(1.0),
collision_events: CollisionEventsEnabled,
movement_config: config,
}
}
}