PhysicsDirectBodyState

Inherits: Object

直接访问PhysicsServer中的物理体的对象。

描述

提供对 PhysicsServer 中物理实体的直接访问,允许安全更改物理属性。该对象通过刚体/角色物体的直接状态回调传递,直接改变该物体的状态。参阅 RigidBody._integrate_forces

教程

属性

Vector3

angular_velocity

Vector3

center_of_mass

Vector3

inverse_inertia

float

inverse_mass

Vector3

linear_velocity

Basis

principal_inertia_axes

bool

sleeping

float

step

float

total_angular_damp

Vector3

total_gravity

float

total_linear_damp

Transform

transform

方法

void

add_central_force ( Vector3 force )

void

add_force ( Vector3 force, Vector3 position )

void

add_torque ( Vector3 torque )

void

apply_central_impulse ( Vector3 j )

void

apply_impulse ( Vector3 position, Vector3 j )

void

apply_torque_impulse ( Vector3 j )

RID

get_contact_collider ( int contact_idx ) const

int

get_contact_collider_id ( int contact_idx ) const

Object

get_contact_collider_object ( int contact_idx ) const

Vector3

get_contact_collider_position ( int contact_idx ) const

int

get_contact_collider_shape ( int contact_idx ) const

Vector3

get_contact_collider_velocity_at_position ( int contact_idx ) const

int

get_contact_count ( ) const

float

get_contact_impulse ( int contact_idx ) const

Vector3

get_contact_local_normal ( int contact_idx ) const

Vector3

get_contact_local_position ( int contact_idx ) const

int

get_contact_local_shape ( int contact_idx ) const

PhysicsDirectSpaceState

get_space_state ( )

Vector3

get_velocity_at_local_position ( Vector3 local_position ) const

void

integrate_forces ( )

属性说明

Setter

set_angular_velocity(value)

Getter

get_angular_velocity()

物体的旋转速度,使用轴-角格式。向量的大小表示旋转率,单位为弧度每秒。


Getter

get_center_of_mass()


Getter

get_inverse_inertia()

物体惯性的倒数。


Getter

get_inverse_mass()

物体质量的倒数。


Setter

set_linear_velocity(value)

Getter

get_linear_velocity()

物体的线速度,单位为单位每秒。


  • Basis principal_inertia_axes

Getter

get_principal_inertia_axes()


Setter

set_sleep_state(value)

Getter

is_sleeping()

如果true,则该物体当前处于睡眠状态(不活动)。


Getter

get_step()

用于模拟的时间步长(delta)。


  • float total_angular_damp

Getter

get_total_angular_damp()

物体停止转动的速度,如果没有任何其他力使它运动。


Getter

get_total_gravity()

这个物体上的总重力向量。


Getter

get_total_linear_damp()

物体停止运动的速率,如果没有任何其他力使它运动。


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 get_contact_collider ( int contact_idx ) const

返回碰撞体的RID


  • int get_contact_collider_id ( int contact_idx ) const

返回碰撞体的对象id。


  • Object get_contact_collider_object ( int contact_idx ) const

返回碰撞对象。


  • Vector3 get_contact_collider_position ( int contact_idx ) const

返回碰撞体中的接触位置。


  • int get_contact_collider_shape ( int contact_idx ) const

返回碰撞体的形状索引。


  • Vector3 get_contact_collider_velocity_at_position ( int contact_idx ) const

返回碰撞体接触点处的线速度向量。


  • int get_contact_count ( ) const

返回此物体与其他物体的接触次数。

注意:默认情况下,除非物体被设为监视接触者,否则返回0。参阅 RigidBody2D.contact_monitor


  • float get_contact_impulse ( int contact_idx ) const

由接触产生的冲量。仅适用于子弹物理。


  • Vector3 get_contact_local_normal ( int contact_idx ) const

返回接触点处的局部法线。


  • Vector3 get_contact_local_position ( int contact_idx ) const

返回接触点的局部坐标系下的位置。


  • int get_contact_local_shape ( int contact_idx ) const

返回碰撞的局部坐标系下的形状索引。


返回空间的当前状态,这对查询很有用。


  • Vector3 get_velocity_at_local_position ( Vector3 local_position ) const

返回给定相对位置的物体速度,包括平移和旋转。


  • void integrate_forces ( )

调用内置的力集成代码。