pub struct TnuaBuiltinClimb {
pub climbable_entity: Option<Entity>,
pub anchor: Vector3,
pub desired_vec_to_anchor: Vector3,
pub anchor_speed: Float,
pub anchor_acceleration: Float,
pub desired_climb_velocity: Vector3,
pub climb_acceleration: Float,
pub coyote_time: Float,
pub desired_forward: Option<Dir3>,
pub hard_stop_up: Option<Vector3>,
pub hard_stop_down: Option<Vector3>,
pub initiation_direction: Vector3,
}
Expand description
An action for climbing on things.
Fields§
§climbable_entity: Option<Entity>
The entity being climbed on.
anchor: Vector3
A point on the climbed entity where the character touches it.
Note that this does not actually have to be on any actual collider. It can be a point in the middle of the air, and the action will cause the character to pretend there is something there and climb on it.
desired_vec_to_anchor: Vector3
The position of the anchor
compared to the character.
The action will try to maintain this horizontal relative position.
anchor_speed: Float
Speed for maintaining desired_vec_to_anchor
.
anchor_acceleration: Float
Acceleration for maintaining desired_vec_to_anchor
.
desired_climb_velocity: Vector3
The velocity to climb at (move up/down the entity)
climb_acceleration: Float
The acceleration to climb at.
coyote_time: Float
The time, in seconds, the character can still jump after letting go.
desired_forward: Option<Dir3>
Force the character to face in a particular direction.
hard_stop_up: Option<Vector3>
Prevent the character from climbing above this point.
Tip: use
probe_extent_from_closest_point
to find this point.
hard_stop_down: Option<Vector3>
Prevent the character from climbing below this point.
Tip: use
probe_extent_from_closest_point
to find this point.
initiation_direction: Vector3
The direction used to initiate the climb.
This field is not used by the action itself. It’s purpose is to help user controller systems determine if the player input is a continuation of the motion used to initiate the climb, or if it’s a motion for breaking from the climb.
Trait Implementations§
Source§impl Clone for TnuaBuiltinClimb
impl Clone for TnuaBuiltinClimb
Source§fn clone(&self) -> TnuaBuiltinClimb
fn clone(&self) -> TnuaBuiltinClimb
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Default for TnuaBuiltinClimb
impl Default for TnuaBuiltinClimb
Source§impl TnuaAction for TnuaBuiltinClimb
impl TnuaAction for TnuaBuiltinClimb
Source§const VIOLATES_COYOTE_TIME: bool = true
const VIOLATES_COYOTE_TIME: bool = true
Source§type State = TnuaBuiltinClimbState
type State = TnuaBuiltinClimbState
Source§fn apply(
&self,
state: &mut Self::State,
ctx: TnuaActionContext<'_>,
lifecycle_status: TnuaActionLifecycleStatus,
motor: &mut TnuaMotor,
) -> TnuaActionLifecycleDirective
fn apply( &self, state: &mut Self::State, ctx: TnuaActionContext<'_>, lifecycle_status: TnuaActionLifecycleStatus, motor: &mut TnuaMotor, ) -> TnuaActionLifecycleDirective
Source§fn initiation_decision(
&self,
_ctx: TnuaActionContext<'_>,
_being_fed_for: &Stopwatch,
) -> TnuaActionInitiationDirective
fn initiation_decision( &self, _ctx: TnuaActionContext<'_>, _being_fed_for: &Stopwatch, ) -> TnuaActionInitiationDirective
Source§fn target_entity(&self, _state: &Self::State) -> Option<Entity>
fn target_entity(&self, _state: &Self::State) -> Option<Entity>
Source§fn proximity_sensor_cast_range(&self) -> Float
fn proximity_sensor_cast_range(&self) -> Float
Auto Trait Implementations§
impl Freeze for TnuaBuiltinClimb
impl RefUnwindSafe for TnuaBuiltinClimb
impl Send for TnuaBuiltinClimb
impl Sync for TnuaBuiltinClimb
impl Unpin for TnuaBuiltinClimb
impl UnwindSafe for TnuaBuiltinClimb
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> 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