PhysicsDirectBodyState
Inherits: Object
直接访问PhysicsServer中的物理体的对象。
描述
提供对 PhysicsServer 中物理实体的直接访问,允许安全更改物理属性。该对象通过刚体/角色物体的直接状态回调传递,直接改变该物体的状态。参阅 RigidBody._integrate_forces。
教程
属性
方法
void | add_central_force ( Vector3 force ) |
void | |
void | add_torque ( Vector3 torque ) |
void | apply_central_impulse ( Vector3 j ) |
void | apply_impulse ( Vector3 position, Vector3 j ) |
void | apply_torque_impulse ( Vector3 j ) |
get_contact_collider ( int contact_idx ) const | |
get_contact_collider_id ( int contact_idx ) const | |
get_contact_collider_object ( int contact_idx ) const | |
get_contact_collider_position ( int contact_idx ) const | |
get_contact_collider_shape ( int contact_idx ) const | |
get_contact_collider_velocity_at_position ( int contact_idx ) const | |
get_contact_count ( ) const | |
get_contact_impulse ( int contact_idx ) const | |
get_contact_local_normal ( int contact_idx ) const | |
get_contact_local_position ( int contact_idx ) const | |
get_contact_local_shape ( int contact_idx ) const | |
get_space_state ( ) | |
get_velocity_at_local_position ( Vector3 local_position ) const | |
void | integrate_forces ( ) |
属性说明
- Vector3 angular_velocity
Setter | set_angular_velocity(value) |
Getter | get_angular_velocity() |
物体的旋转速度,使用轴-角格式。向量的大小表示旋转率,单位为弧度每秒。
- Vector3 center_of_mass
Getter | get_center_of_mass() |
- Vector3 inverse_inertia
Getter | get_inverse_inertia() |
物体惯性的倒数。
- float inverse_mass
Getter | get_inverse_mass() |
物体质量的倒数。
- Vector3 linear_velocity
Setter | set_linear_velocity(value) |
Getter | get_linear_velocity() |
物体的线速度,单位为单位每秒。
- Basis principal_inertia_axes
Getter | get_principal_inertia_axes() |
- bool sleeping
Setter | set_sleep_state(value) |
Getter | is_sleeping() |
如果true
,则该物体当前处于睡眠状态(不活动)。
- float step
Getter | get_step() |
用于模拟的时间步长(delta)。
- float total_angular_damp
Getter | get_total_angular_damp() |
物体停止转动的速度,如果没有任何其他力使它运动。
- Vector3 total_gravity
Getter | get_total_gravity() |
这个物体上的总重力向量。
- float total_linear_damp
Getter | get_total_linear_damp() |
物体停止运动的速率,如果没有任何其他力使它运动。
- Transform transform
Setter | set_transform(value) |
Getter | get_transform() |
物体的变换矩阵。
方法说明
- void add_central_force ( Vector3 force )
增加一个恒定的方向力,而不影响旋转。
这相当于add_force(force, Vector3(0,0,0))
。
向实体添加有作用点的力。力和相对于主体原点的偏移都在全局坐标中。
- void add_torque ( Vector3 torque )
在不影响位置的情况下增加一个恒定的旋转力。
- void apply_central_impulse ( Vector3 j )
施加单一方向的冲量而不影响旋转。
这等价于apply_impulse(Vector3(0,0,0), impulse)
。
对物体施加一个有作用点的冲量。冲量是时间无关的! 在每一帧中施加冲量将产生一个与帧速率相关的力。出于这个原因,它应该只在模拟一次性冲击时使用。该位置使用全局坐标系的旋转,但以物体的原点为中心。
- void apply_torque_impulse ( Vector3 j )
施加一个扭矩冲量(这将受到物体质量和形状的影响)。这将围绕作为参数传递的向量j
旋转主体。
返回碰撞体的RID。
返回碰撞体的对象id。
返回碰撞对象。
返回碰撞体中的接触位置。
返回碰撞体的形状索引。
返回碰撞体接触点处的线速度向量。
- int get_contact_count ( ) const
返回此物体与其他物体的接触次数。
注意:默认情况下,除非物体被设为监视接触者,否则返回0。参阅 RigidBody2D.contact_monitor。
由接触产生的冲量。仅适用于子弹物理。
返回接触点处的局部法线。
返回接触点的局部坐标系下的位置。
返回碰撞的局部坐标系下的形状索引。
- PhysicsDirectSpaceState get_space_state ( )
返回空间的当前状态,这对查询很有用。
返回给定相对位置的物体速度,包括平移和旋转。
- void integrate_forces ( )
调用内置的力集成代码。