pub struct TnuaBuiltinJumpConfig {
pub height: Float,
pub upslope_extra_gravity: Float,
pub takeoff_extra_gravity: Float,
pub takeoff_above_velocity: Float,
pub fall_extra_gravity: Float,
pub shorten_extra_gravity: Float,
pub peak_prevention_at_upward_velocity: Float,
pub peak_prevention_extra_gravity: Float,
pub reschedule_cooldown: Option<Float>,
pub input_buffer_time: Float,
pub horizontal_distance: Float,
pub disable_force_forward_after_peak: bool,
}Fields§
§height: FloatThe height the character will jump to.
If shorten_extra_gravity is higher than 0.0, the
character may stop the jump in the middle if the jump action is no longer fed (usually when
the player releases the jump button) and the character may not reach its full jump height.
The jump height is calculated from the center of the character at float_height to the
center of the character at the top of the jump. It does not mean the height from the
ground. The float height is calculated by the inspecting the character’s current position
and the basis’ displacement.
upslope_extra_gravity: FloatExtra gravity for breaking too fast jump from running up a slope.
When running up a slope, the character gets more jump strength to avoid slamming into the slope. This may cause the jump to be too high, so this value is used to brake it.
NOTE: This force will be added to the normal gravity.
takeoff_extra_gravity: FloatExtra gravity for fast takeoff.
Without this, jumps feel painfully slow. Adding this will apply extra gravity until the
vertical velocity reaches below takeoff_above_velocity,
and increase the initial jump boost in order to compensate. This will make the jump feel
more snappy.
takeoff_above_velocity: FloatThe range of upward velocity during takeoff_extra_gravity
is applied.
To disable, set this to Float::INFINITY rather than zero.
fall_extra_gravity: FloatExtra gravity for falling down after reaching the top of the jump.
NOTE: This force will be added to the normal gravity.
shorten_extra_gravity: FloatExtra gravity for shortening a jump when the player releases the jump button.
NOTE: This force will be added to the normal gravity.
peak_prevention_at_upward_velocity: FloatUsed to decrease the time the character spends “floating” at the peak of the jump.
When the character’s upward velocity is above this value,
peak_prevention_extra_gravity will be added to the
gravity in order to shorten the float time.
This extra gravity is taken into account when calculating the initial jump speed, so the
character is still supposed to reach its full jump height.
peak_prevention_extra_gravity: FloatExtra gravity for decreasing the time the character spends at the peak of the jump.
NOTE: This force will be added to the normal gravity.
reschedule_cooldown: Option<Float>A duration, in seconds, after which the character would jump if the jump button was already pressed when the jump became available.
The duration is measured from the moment the jump became available - not from the moment the jump button was pressed.
When set to None, the character will not jump no matter how long the player holds the
jump button.
If the jump button is held but the jump input is still buffered (see
input_buffer_time), this setting will have no effect because
the character will simply jump immediately.
input_buffer_time: FloatA duration, in seconds, where a player can press a jump button before a jump becomes possible (typically when a character is still in the air and about the land) and the jump action would still get registered and be executed once the jump is possible.
horizontal_distance: FloatWhen horizontal_displacement is given in the
action input, multiply it by this number.
disable_force_forward_after_peak: boolWhen force_forward is given in the action input, only
enforce it during the first part of the jump (rising up) and once the peak is reached and
the character falls down allow its direction to be determined by the basis again.
Trait Implementations§
Source§impl Clone for TnuaBuiltinJumpConfig
impl Clone for TnuaBuiltinJumpConfig
Source§fn clone(&self) -> TnuaBuiltinJumpConfig
fn clone(&self) -> TnuaBuiltinJumpConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Default for TnuaBuiltinJumpConfig
impl Default for TnuaBuiltinJumpConfig
Source§impl<'de> Deserialize<'de> for TnuaBuiltinJumpConfig
impl<'de> Deserialize<'de> for TnuaBuiltinJumpConfig
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for TnuaBuiltinJumpConfig
impl RefUnwindSafe for TnuaBuiltinJumpConfig
impl Send for TnuaBuiltinJumpConfig
impl Sync for TnuaBuiltinJumpConfig
impl Unpin for TnuaBuiltinJumpConfig
impl UnwindSafe for TnuaBuiltinJumpConfig
Blanket Implementations§
Source§impl<T, U> AsBindGroupShaderType<U> for T
impl<T, U> AsBindGroupShaderType<U> for T
Source§fn as_bind_group_shader_type(&self, _images: &RenderAssets<GpuImage>) -> U
fn as_bind_group_shader_type(&self, _images: &RenderAssets<GpuImage>) -> U
T ShaderType for self. When used in AsBindGroup
derives, it is safe to assume that all images in self exist.Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> FromWorld for Twhere
T: Default,
impl<T> FromWorld for Twhere
T: Default,
Source§fn from_world(_world: &mut World) -> T
fn from_world(_world: &mut World) -> T
Creates Self using default().
Source§impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
Source§impl<T> Identity for Twhere
T: ?Sized,
impl<T> Identity for Twhere
T: ?Sized,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more