PhysicsServer

继承: Object

继承人: BulletPhysicsServer

类别: 核心

简要说明

用于低级物理访问的服务器接口。

方法

无效

area_add_shape ( RID area, RID shape, Transform transform=Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 ), bool disabled=false )

无效

area_attach_object_instance_id ( RID area, int id )

无效

area_clear_shapes ( RID area )

RID

area_create ( )

int

area_get_object_instance_id ( RID area ) const

Variant

area_get_param ( RID area, AreaParameter param ) const

RID

area_get_shape ( RID area, int shape_idx ) const

int

area_get_shape_count ( RID area ) const

Transform

area_get_shape_transform ( RID area, int shape_idx ) const

RID

area_get_space ( RID area ) const

AreaSpaceOverrideMode

area_get_space_override_mode ( RID area ) const

Transform

area_get_transform ( RID area ) const

bool

area_is_ray_pickable ( RID area ) const

无效

area_remove_shape ( RID area, int shape_idx )

无效

area_set_area_monitor_callback ( RID area, Object receiver, String method )

无效

area_set_collision_layer ( RID area, int layer )

无效

area_set_collision_mask ( RID area, int mask )

无效

area_set_monitor_callback ( RID area, Object receiver, String method )

无效

area_set_monitorable ( RID area, bool monitorable )

无效

area_set_param ( RID area, AreaParameter param, Variant value )

无效

area_set_ray_pickable ( RID area, bool enable )

无效

area_set_shape ( RID area, int shape_idx, RID shape )

无效

area_set_shape_disabled ( RID area, int shape_idx, bool disabled )

无效

area_set_shape_transform ( RID area, int shape_idx, Transform transform )

无效

area_set_space ( RID area, RID space )

无效

area_set_space_override_mode ( RID area, AreaSpaceOverrideMode mode )

无效

area_set_transform ( RID area, Transform transform )

无效

body_add_central_force ( RID body, Vector3 force )

无效

body_add_collision_exception ( RID body, RID excepted_body )

无效

body_add_force ( RID body, Vector3 force, Vector3 position )

无效

body_add_shape ( RID body, RID shape, Transform transform=Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 ), bool disabled=false )

无效

body_add_torque ( RID body, Vector3 torque )

无效

body_apply_central_impulse ( RID body, Vector3 impulse )

无效

body_apply_impulse ( RID body, Vector3 position, Vector3 impulse )

无效

body_apply_torque_impulse ( RID body, Vector3 impulse )

无效

body_attach_object_instance_id ( RID body, int id )

无效

body_clear_shapes ( RID body )

RID

body_create ( BodyMode mode=2, bool init_sleeping=false )

int

body_get_collision_layer ( RID body ) const

int

body_get_collision_mask ( RID body ) const

PhysicsDirectBodyState

body_get_direct_state ( RID body )

float

body_get_kinematic_safe_margin ( RID body ) const

int

body_get_max_contacts_reported ( RID body ) const

BodyMode

body_get_mode ( RID body ) const

int

body_get_object_instance_id ( RID body ) const

float

body_get_param ( RID body, BodyParameter param ) const

RID

body_get_shape ( RID body, int shape_idx ) const

int

body_get_shape_count ( RID body ) const

Transform

body_get_shape_transform ( RID body, int shape_idx ) const

RID

body_get_space ( RID body ) const

Variant

body_get_state ( RID body, BodyState state ) const

bool

body_is_axis_locked ( RID body, BodyAxis axis ) const

bool

body_is_continuous_collision_detection_enabled ( RID body ) const

bool

body_is_omitting_force_integration ( RID body ) const

bool

body_is_ray_pickable ( RID body ) const

无效

body_remove_collision_exception ( RID body, RID excepted_body )

无效

body_remove_shape ( RID body, int shape_idx )

无效

body_set_axis_lock ( RID body, BodyAxis axis, bool lock )

无效

body_set_axis_velocity ( RID body, Vector3 axis_velocity )

无效

body_set_collision_layer ( RID body, int layer )

无效

body_set_collision_mask ( RID body, int mask )

无效

body_set_enable_continuous_collision_detection ( RID body, bool enable )

无效

body_set_force_integration_callback ( RID body, Object receiver, String method, Variant userdata=null )

无效

body_set_kinematic_safe_margin ( RID body, float margin )

无效

body_set_max_contacts_reported ( RID body, int amount )

无效

body_set_mode ( RID body, BodyMode mode )

无效

body_set_omit_force_integration ( RID body, bool enable )

无效

body_set_param ( RID body, BodyParameter param, float value )

无效

body_set_ray_pickable ( RID body, bool enable )

无效

body_set_shape ( RID body, int shape_idx, RID shape )

无效

body_set_shape_disabled ( RID body, int shape_idx, bool disabled )

无效

body_set_shape_transform ( RID body, int shape_idx, Transform transform )

无效

body_set_space ( RID body, RID space )

无效

body_set_state ( RID body, BodyState state, Variant value )

float

cone_twist_joint_get_param ( RID joint, ConeTwistJointParam param ) const

无效

cone_twist_joint_set_param ( RID joint, ConeTwistJointParam param, float value )

无效

free_rid ( RID rid )

bool

generic_6dof_joint_get_flag ( RID joint, Vector3.Axis axis, G6DOFJointAxisFlag flag )

float

generic_6dof_joint_get_param ( RID joint, Vector3.Axis axis, G6DOFJointAxisParam param )

无效

generic_6dof_joint_set_flag ( RID joint, Vector3.Axis axis, G6DOFJointAxisFlag flag, bool enable )

无效

generic_6dof_joint_set_param ( RID joint, Vector3.Axis axis, G6DOFJointAxisParam param, float value )

int

get_process_info ( ProcessInfo process_info )

bool

hinge_joint_get_flag ( RID joint, HingeJointFlag flag ) const

float

hinge_joint_get_param ( RID joint, HingeJointParam param ) const

无效

hinge_joint_set_flag ( RID joint, HingeJointFlag flag, bool enabled )

无效

hinge_joint_set_param ( RID joint, HingeJointParam param, float value )

RID

joint_create_cone_twist ( RID body_A, Transform local_ref_A, RID body_B, Transform local_ref_B )

RID

joint_create_generic_6dof ( RID body_A, Transform local_ref_A, RID body_B, Transform local_ref_B )

RID

joint_create_hinge ( RID body_A, Transform hinge_A, RID body_B, Transform hinge_B )

RID

joint_create_pin ( RID body_A, Vector3 local_A, RID body_B, Vector3 local_B )

RID

joint_create_slider ( RID body_A, Transform local_ref_A, RID body_B, Transform local_ref_B )

int

joint_get_solver_priority ( RID joint ) const

JointType

joint_get_type ( RID joint ) const

无效

joint_set_solver_priority ( RID joint, int priority )

Vector3

pin_joint_get_local_a ( RID joint ) const

Vector3

pin_joint_get_local_b ( RID joint ) const

float

pin_joint_get_param ( RID joint, PinJointParam param ) const

无效

pin_joint_set_local_a ( RID joint, Vector3 local_A )

无效

pin_joint_set_local_b ( RID joint, Vector3 local_B )

无效

pin_joint_set_param ( RID joint, PinJointParam param, float value )

无效

set_active ( bool active )

RID

shape_create ( ShapeType type )

Variant

shape_get_data ( RID shape ) const

ShapeType

shape_get_type ( RID shape ) const

无效

shape_set_data ( RID shape, Variant data )

float

slider_joint_get_param ( RID joint, SliderJointParam param ) const

无效

slider_joint_set_param ( RID joint, SliderJointParam param, float value )

RID

space_create ( )

PhysicsDirectSpaceState

space_get_direct_state ( RID space )

float

space_get_param ( RID space, SpaceParameter param ) const

bool

space_is_active ( RID space ) const

无效

space_set_active ( RID space, bool active )

无效

space_set_param ( RID space, SpaceParameter param, float value )

枚举

枚举 JointType

枚举 PinJointParam

  • PIN_JOINT_BIAS = 0 ——被钉住物体试图保持位置关系的强度。

越高,越强。

  • PIN_JOINT_DAMPING = 1 ——被钉住物体试图保持相对速度的强度。

越高,越强。

  • PIN_JOINT_IMPULSE_CLAMP = 2 ---如果大于0,则该值为该接头端部施加的脉冲的最大值。

枚举 HingeJointParam

  • HINGE_JOINT_BIAS = 0 ——两个身体向不同的方向运动时聚在一起的速度。

  • HINGE_JOINT_LIMIT_UPPER = 1 ---通过铰链的最大旋转。

  • HINGE_JOINT_LIMIT_LOWER = 2 ---铰链的最小旋转。

  • HINGE_JOINT_LIMIT_BIAS = 3 ---修正垂直于铰链的轴上旋转的速度。

  • HINGE_JOINT_LIMIT_SOFTNESS = 4

  • HINGE_JOINT_LIMIT_RELAXATION = 5 ---该值越低,旋转速度越慢。

  • HINGE_JOINT_MOTOR_TARGET_VELOCITY = 6 ---电机的目标速度。

  • HINGE_JOINT_MOTOR_MAX_IMPULSE = 7 ---电机最大加速度。

枚举 HingeJointFlag

  • HINGE_JOINT_FLAG_USE_LIMIT = 0 ---如果 true 铰链具有最大和最小旋转。

  • HINGE_JOINT_FLAG_ENABLE_MOTOR = 1 ---如果 true ,电机转动铰链

枚举 SliderJointParam

  • SLIDER_JOINT_LINEAR_LIMIT_UPPER = 0 ---阻尼发生前X轴上各支点之间的最大差值。

  • SLIDER_JOINT_LINEAR_LIMIT_LOWER = 1 ---阻尼发生前X轴上各支点之间的最小差。

  • SLIDER_JOINT_LINEAR_LIMIT_SOFTNESS = 2 ---一旦超过限制,就应用于滑块轴上的移动的系数。越低,移动越慢。

  • SLIDER_JOINT_LINEAR_LIMIT_RESTITUTION = 3 ——超过限额的赔偿金额。越低,失去的速度能量就越多。

  • SLIDER_JOINT_LINEAR_LIMIT_DAMPING = 4 ---超过滑块限制后的阻尼量。

  • SLIDER_JOINT_LINEAR_MOTION_SOFTNESS = 5 ---只要滑块在限制范围内,就应用于滑块轴移动的系数。越低,移动越慢。

  • SLIDER_JOINT_LINEAR_MOTION_RESTITUTION = 6 ---滑块限制内的恢复量。

  • SLIDER_JOINT_LINEAR_MOTION_DAMPING = 7 ---滑块限制内的阻尼量。

  • SLIDER_JOINT_LINEAR_ORTHOGONAL_SOFTNESS = 8 ---应用于横穿与滑块垂直的轴的移动的系数。

  • SLIDER_JOINT_LINEAR_ORTHOGONAL_RESTITUTION = 9 ---移动穿过与滑块正交的轴时的恢复量。

  • SLIDER_JOINT_LINEAR_ORTHOGONAL_DAMPING = 10 ---当运动穿过与滑块正交的轴时的阻尼量。

  • SLIDER_JOINT_ANGULAR_LIMIT_UPPER = 11 ---滑块转动的上限。

  • SLIDER_JOINT_ANGULAR_LIMIT_LOWER = 12 ---滑块转动下限。

  • SLIDER_JOINT_ANGULAR_LIMIT_SOFTNESS = 13 ---一旦超过极限,应用于所有旋转的系数。

  • SLIDER_JOINT_ANGULAR_LIMIT_RESTITUTION = 14 ——超过极限时旋转的恢复量。

  • SLIDER_JOINT_ANGULAR_LIMIT_DAMPING = 15 ——超过极限时的旋转阻尼量。

  • SLIDER_JOINT_ANGULAR_MOTION_SOFTNESS = 16 ---应用于极限内所有旋转的系数。

  • SLIDER_JOINT_ANGULAR_MOTION_RESTITUTION = 17 ——旋转在极限内的恢复量。

  • SLIDER_JOINT_ANGULAR_MOTION_DAMPING = 18 ---在限制范围内旋转的阻尼量。

  • SLIDER_JOINT_ANGULAR_ORTHOGONAL_SOFTNESS = 19 ---应用于垂直于滑块的所有轴旋转的系数。

  • SLIDER_JOINT_ANGULAR_ORTHOGONAL_RESTITUTION = 20 ---垂直于滑块的轴上旋转的恢复量。

  • SLIDER_JOINT_ANGULAR_ORTHOGONAL_DAMPING = 21 ---垂直于滑块的轴上旋转的阻尼量。

  • SLIDER_JOINT_MAX = 22 ---表示 SliderJointParam 枚举。

枚举 ConeTwistJointParam

  • CONE_TWIST_JOINT_SWING_SPAN = 0 ---摆动是指在垂直于扭转轴的轴上左右旋转。

摆幅定义了摆幅轴的旋转量不能得到修正。

可以定义为 ConeTwistJoint .

如果低于0.05,此行为将被锁定。

  • CONE_TWIST_JOINT_TWIST_SPAN = 1 ---扭曲是围绕扭曲轴的旋转,该值定义了关节可以扭曲的距离。

如果低于0.05,扭转将被锁定。

  • CONE_TWIST_JOINT_BIAS = 2 ——摆动或扭转的速度。

越高,越快。

  • CONE_TWIST_JOINT_SOFTNESS = 3 ——关节扭动的容易程度,如果太低,扭动关节就需要更大的力。

  • CONE_TWIST_JOINT_RELAXATION = 4 ---定义了两边的摆动和扭转速度差同步的速度。

枚举 G6DOF联合滑行梁

  • G6DOF_JOINT_LINEAR_LOWER_LIMIT = 0 ——支点轴线之间的最小差。

  • G6DOF_JOINT_LINEAR_UPPER_LIMIT = 1 ——各支点轴线的最大差。

  • G6DOF_JOINT_LINEAR_LIMIT_SOFTNESS = 2 ---应用于横轴运动的系数。越低,移动越慢。

  • G6DOF_JOINT_LINEAR_RESTITUTION = 3 ——轴运动的恢复量。越低,损失的速度能量就越多。

  • G6DOF_JOINT_LINEAR_DAMPING = 4 ---轴上直线运动时产生的阻尼量。

  • G6DOF_JOINT_LINEAR_MOTOR_TARGET_VELOCITY = 5 ——关节直线电机试图达到的速度。

  • G6DOF_JOINT_LINEAR_MOTOR_FORCE_LIMIT = 6 ——直线电机在达到目标速度时所能施加的最大力。

  • G6DOF_JOINT_ANGULAR_LOWER_LIMIT = 10 ---反向最小旋转,以防松脱并绕轴旋转。

  • G6DOF_JOINT_ANGULAR_UPPER_LIMIT = 11 ---正方向的最小旋转,以松开并绕轴旋转。

  • G6DOF_JOINT_ANGULAR_LIMIT_SOFTNESS = 12 ---乘以所有轴上旋转的系数。

  • G6DOF_JOINT_ANGULAR_DAMPING = 13 ---轴上的转动阻尼量。越低,阻尼越大。

  • G6DOF_JOINT_ANGULAR_RESTITUTION = 14 ---轴的旋转恢复量。越低,补偿就越多。

  • G6DOF_JOINT_ANGULAR_FORCE_LIMIT = 15 ---绕轴旋转时可能产生的最大力。

  • G6DOF_JOINT_ANGULAR_ERP = 16 ---当修正轴上旋转极限的交叉时,这个误差容限系数定义了修正减速的程度。越低,越慢。

  • G6DOF_JOINT_ANGULAR_MOTOR_TARGET_VELOCITY = 17 ---电机在轴上的目标速度。

  • G6DOF_JOINT_ANGULAR_MOTOR_FORCE_LIMIT = 18 ---电机在轴上的最大加速度。

枚举 G6DOFjointaxisflag(G6DOFjointaxisflag)

  • G6DOF_JOINT_FLAG_ENABLE_LINEAR_LIMIT = 0 ---如果 set 在给定的范围内可能存在线性运动。

  • G6DOF_JOINT_FLAG_ENABLE_ANGULAR_LIMIT = 1 ---如果 set 可能有旋转运动。

  • G6DOF_JOINT_FLAG_ENABLE_MOTOR = 4 ---如果 set 这些轴上有一个旋转电机。

  • G6DOF_JOINT_FLAG_ENABLE_LINEAR_MOTOR = 5 ---如果 set 这个轴上有一个以特定速度为目标的直线电机。

枚举 ShapeType

枚举 AreaParameter

  • AREA_PARAM_GRAVITY = 0 ---设置/获取某个区域的重力强度的常量。

  • AREA_PARAM_GRAVITY_VECTOR = 1 ---常量,用于设置/获取某个区域的重力矢量/中心。

  • AREA_PARAM_GRAVITY_IS_POINT = 2 ---常量设置/获取一个区域的重力矢量是方向还是中心点。

  • AREA_PARAM_GRAVITY_DISTANCE_SCALE = 3 ---常量,用于设置/获取某个区域的点重力的衰减因子。该值越大,重力强度随距离平方的减小越快。

  • AREA_PARAM_GRAVITY_POINT_ATTENUATION = 4 ---该常数用于设置/获取点重力的衰减因子。它已被“面积-参数-重力-距离-刻度”所取代。

  • AREA_PARAM_LINEAR_DAMP = 5 ---常量设置/获取一个区域的线性阻尼系数。

  • AREA_PARAM_ANGULAR_DAMP = 6 ---常量设置/获取一个区域的角阻尼系数。

  • AREA_PARAM_PRIORITY = 7 ---设置/获取区域优先级(处理顺序)的常量。

枚举 AreaSpaceOverrideMode

  • AREA_SPACE_OVERRIDE_DISABLED = 0 ---该区域不影响重力/湿度。这些区域通常只存在于检测碰撞的区域,以及进入或退出碰撞的对象。

  • AREA_SPACE_OVERRIDE_COMBINE = 1 ---该区域将其重力/阻尼值添加到迄今为止计算的值中。这样,许多重叠的区域可以结合它们的物理特性来产生有趣的效果。

  • AREA_SPACE_OVERRIDE_COMBINE_REPLACE = 2 ---该区域将其重力/阻尼值添加到迄今为止计算的值中。然后停止考虑其他区域,甚至默认区域。

  • AREA_SPACE_OVERRIDE_REPLACE = 3 ---此区域将替换任何重力/湿度,即使是默认的重力/湿度,并停止考虑其余区域。

  • AREA_SPACE_OVERRIDE_REPLACE_COMBINE = 4 ---此区域将替换到目前为止计算的所有重力/阻尼,但将继续计算其余区域,直至默认区域。

枚举 BodyMode

  • BODY_MODE_STATIC = 0 ——静止物体的常数。

  • BODY_MODE_KINEMATIC = 1 ——运动体常数。

  • BODY_MODE_RIGID = 2 ——刚体常数。

  • BODY_MODE_CHARACTER = 3 ——在字符模式下,刚性体的常数。在这种模式下,物体不能旋转,只有它的线速度受物理学的影响。

枚举 BodyParameter

  • BODY_PARAM_BOUNCE = 0 ---设置/获取物体的反弹系数的常数。

  • BODY_PARAM_FRICTION = 1 ---设定/获得物体摩擦力的常数。

  • BODY_PARAM_MASS = 2 ---设定/获取物体质量的常数。

  • BODY_PARAM_GRAVITY_SCALE = 3 ---设置/获取物体重力倍增器的常数。

  • BODY_PARAM_LINEAR_DAMP = 4 ---设置/获取物体线性阻尼系数的常数。

  • BODY_PARAM_ANGULAR_DAMP = 5 ---设置/获取物体的角阻尼系数的常数。

  • BODY_PARAM_MAX = 6 ---表示 BodyParameter 枚举。

枚举 BodyState

  • BODY_STATE_TRANSFORM = 0 ---常量,用于设置/获取物体的电流变换矩阵。

  • BODY_STATE_LINEAR_VELOCITY = 1 ——设定/获取物体当前线速度的常数。

  • BODY_STATE_ANGULAR_VELOCITY = 2 ---设定/获取物体当前角速度的常数。

  • BODY_STATE_SLEEPING = 3 ---不断地睡/醒一个身体,或者了解它是否在睡觉。

  • BODY_STATE_CAN_SLEEP = 4 ---持续设置/获取身体是否可以睡眠。

枚举 AreaBodyStatus

  • AREA_BODY_ADDED = 0 ---当对象进入其形状时,第一个参数和区域回调函数的值将被接收。

  • AREA_BODY_REMOVED = 1 ---当对象退出其形状时,第一个参数和区域回调函数的值接收。

枚举 ProcessInfo

  • INFO_ACTIVE_OBJECTS = 0 ---常量,用于获取不休眠的对象数。

  • INFO_COLLISION_PAIRS = 1 ---常量以获取可能发生的碰撞数。

  • INFO_ISLAND_COUNT = 2 ——常数,得到可能发生碰撞的空间区域数。

枚举 SpaceParameter

  • SPACE_PARAM_CONTACT_RECYCLE_RADIUS = 0 ---常量设置/获取一对物体在重新计算碰撞状态之前必须移动的最大距离。

  • SPACE_PARAM_CONTACT_MAX_SEPARATION = 1 ---设置/获取形状与另一个形状之间的最大距离的常量,然后将其视为分离。

  • SPACE_PARAM_BODY_MAX_ALLOWED_PENETRATION = 2 ---设置/获取一个形状在被视为碰撞之前可以穿透另一个形状的最大距离的常量。

  • SPACE_PARAM_BODY_LINEAR_VELOCITY_SLEEP_THRESHOLD = 3 ---设置/获取活动的阈值线性速度的常数。一个被标记为对线速度和角速度潜在不活跃的物体,在给定的时间之后将进入睡眠状态。

  • SPACE_PARAM_BODY_ANGULAR_VELOCITY_SLEEP_THRESHOLD = 4 ---常量设置/获取活动的阈值角速度。一个被标记为对线速度和角速度潜在不活跃的物体,在给定的时间之后将进入睡眠状态。

  • SPACE_PARAM_BODY_TIME_TO_SLEEP = 5 ---常量设置/获取活动的最大时间。一个被标记为对线速度和角速度潜在不活跃的物体将在这一次之后进入睡眠状态。

  • SPACE_PARAM_BODY_ANGULAR_VELOCITY_DAMP_RATIO = 6

  • SPACE_PARAM_CONSTRAINT_DEFAULT_BIAS = 7 ---常量设置/获取所有物理约束的默认解算器偏差。解算器偏差是一个控制两个对象在违反约束后“反弹”多少的因素,以避免由于数值不精确而使其处于该状态。

  • SPACE_PARAM_TEST_MOTION_MIN_CONTACT_DEPTH = 8

枚举 BodyAxis

  • BODY_AXIS_LINEAR_X = 1

  • BODY_AXIS_LINEAR_Y = 2

  • BODY_AXIS_LINEAR_Z = 4

  • BODY_AXIS_ANGULAR_X = 8

  • BODY_AXIS_ANGULAR_Y = 16

  • BODY_AXIS_ANGULAR_Z = 32

描述

物理服务器是负责所有3D物理的服务器。它可以创建多种物理对象,但不会将它们插入到节点树中。

方法说明

  • void area_add_shape ( RID area, RID shape, Transform transform=Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 ), bool disabled=false )

向区域中添加形状以及变换矩阵。形状通常由其索引引用,因此应跟踪哪个形状具有给定索引。

  • void area_attach_object_instance_id ( RID area, int id )

将区域分配给的后代 Object ,因此它可以存在于节点树中。

  • void area_clear_shapes ( RID area )

从区域中删除所有形状。它不会删除形状,因此可以稍后重新分配。

  • RID area_create ( )

创建一个 Area .

  • int area_get_object_instance_id ( RID area ) const

获取该区域分配给的对象的实例ID。

返回区域参数值。可用参数列表位于 AREA_PARAM_* 常量。

  • RID area_get_shape ( RID area, int shape_idx ) const

返回 RID 一个区域的第n个形状。

  • int area_get_shape_count ( RID area ) const

返回分配给区域的形状数。

返回区域内形状的转换矩阵。

  • RID area_get_space ( RID area ) const

返回分配给该区域的空间。

返回区域的空间覆盖模式。

返回区域的转换矩阵。

  • bool area_is_ray_pickable ( RID area ) const

如果 true ,区域与光线碰撞。

  • void area_remove_shape ( RID area, int shape_idx )

从区域中删除形状。它不会删除形状,因此可以稍后重新分配。

  • void area_set_area_monitor_callback ( RID area, Object receiver, String method )

  • void area_set_collision_layer ( RID area, int layer )

将区域指定给一个或多个物理层。

  • void area_set_collision_mask ( RID area, int mask )

设置区域将监视的物理层。

  • void area_set_monitor_callback ( RID area, Object receiver, String method )

设置任何实体/区域进入或退出该区域时要调用的函数。对于与区域交互的任何对象都将调用此回调,并接受五个参数:

1:添加或删除区域主体,取决于对象是进入还是退出该区域。

2: RID 进入/退出该区域的对象。

3:进入/退出该区域的对象的实例ID。

4:进入/退出区域的对象的形状索引。

5:对象进入/退出区域的形状索引。

  • void area_set_monitorable ( RID area, bool monitorable )

设置区域参数的值。可用参数列表位于 AREA_PARAM_* 常量。

  • void area_set_ray_pickable ( RID area, bool enable )

设置可使用光线拾取的对象。

  • void area_set_shape ( RID area, int shape_idx, RID shape )

用另一个区域形状替换给定的区域形状。旧形状按其索引选择,新形状按其 RID .

  • void area_set_shape_disabled ( RID area, int shape_idx, bool disabled )

  • void area_set_shape_transform ( RID area, int shape_idx, Transform transform )

设置区域形状的变换矩阵。

  • void area_set_space ( RID area, RID space )

为区域指定空间。

设置区域的空间覆盖模式。模式在常量中描述。 AREA_SPACE_OVERRIDE_* .

设置区域的变换矩阵。

  • void body_add_central_force ( RID body, Vector3 force )

  • void body_add_collision_exception ( RID body, RID excepted_body )

将主体添加到免除碰撞的主体列表中。

  • void body_add_shape ( RID body, RID shape, Transform transform=Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 ), bool disabled=false )

将形状与转换矩阵一起添加到主体。形状通常由其索引引用,因此应跟踪哪个形状具有给定索引。

  • void body_add_torque ( RID body, Vector3 torque )

  • void body_apply_central_impulse ( RID body, Vector3 impulse )

给身体一个推力 position 方向 impulse .

  • void body_apply_torque_impulse ( RID body, Vector3 impulse )

推动身体旋转。

  • void body_attach_object_instance_id ( RID body, int id )

将区域分配给的后代 Object ,因此它可以存在于节点树中。

  • void body_clear_shapes ( RID body )

从正文中删除所有形状。

创建物理体。第一个参数可以是常量body_模式中的任何值 * ,用于创建的主体类型。此外,还可以在休眠状态下创建主体,以节省处理时间。

  • int body_get_collision_layer ( RID body ) const

返回一个或多个实体所属的物理层。

  • int body_get_collision_mask ( RID body ) const

返回一个或多个实体可以碰撞的物理层。

返回 PhysicsDirectBodyState 身体的。

  • float body_get_kinematic_safe_margin ( RID body ) const

  • int body_get_max_contacts_reported ( RID body ) const

返回可报告的最大联系人数。见 body_set_max_contacts_reported .

返回主体模式。

  • int body_get_object_instance_id ( RID body ) const

获取该区域分配给的对象的实例ID。

返回body参数的值。可用参数列表位于 BODY_PARAM_* 常量。

  • RID body_get_shape ( RID body, int shape_idx ) const

返回 RID 一个物体的第n个形状。

  • int body_get_shape_count ( RID body ) const

返回分配给正文的形状数。

返回实体形状的转换矩阵。

  • RID body_get_space ( RID body ) const

返回 RID 分配给身体的空间。

返回主体状态。

  • bool body_is_continuous_collision_detection_enabled ( RID body ) const

如果 true ,启用连续碰撞检测模式。

  • bool body_is_omitting_force_integration ( RID body ) const

返回主体是否使用回调函数计算其自身的物理(请参见 body_set_force_integration_callback

  • bool body_is_ray_pickable ( RID body ) const

如果 true 身体可以被射线探测到。

  • void body_remove_collision_exception ( RID body, RID excepted_body )

从免除碰撞的实体列表中删除实体。

连续碰撞检测试图预测运动物体将在何处碰撞,而不是移动它,并在碰撞时纠正它的运动。

  • void body_remove_shape ( RID body, int shape_idx )

从实体中删除形状。该形状不会被删除,因此以后可以重复使用。

  • void body_set_axis_velocity ( RID body, Vector3 axis_velocity )

设置轴速度。给定矢量轴上的速度将设置为给定的矢量长度。这对跳跃行为很有用。

  • void body_set_collision_layer ( RID body, int layer )

设置一个或多个实体所属的物理层。

  • void body_set_collision_mask ( RID body, int mask )

设置一个或多个实体可以碰撞的物理层。

  • void body_set_enable_continuous_collision_detection ( RID body, bool enable )

如果 true ,启用连续碰撞检测模式。

连续碰撞检测试图预测运动物体将在何处碰撞,而不是移动它,并在碰撞时纠正它的运动。

  • void body_set_force_integration_callback ( RID body, Object receiver, String method, Variant userdata=null )

如果对象允许,设置用于计算对象物理的函数(请参见 body_set_omit_force_integration

  • void body_set_kinematic_safe_margin ( RID body, float margin )

  • void body_set_max_contacts_reported ( RID body, int amount )

设置要报告的最大联系人数。正文可以保存与其他正文的联系人的日志,这是通过设置报告给大于0的数字的联系人的最大数量来启用的。

从常量body_模式之一设置body模式 * .

  • void body_set_omit_force_integration ( RID body, bool enable )

设置主体是否使用回调函数计算其自身物理(请参见 body_set_force_integration_callback

设置主体参数。可用参数列表位于 BODY_PARAM_* 常量。

  • void body_set_ray_pickable ( RID body, bool enable )

如果 enabled 被设置。

  • void body_set_shape ( RID body, int shape_idx, RID shape )

用另一个代替给定的体形。旧形状按其索引选择,新形状按其 RID .

  • void body_set_shape_disabled ( RID body, int shape_idx, bool disabled )

  • void body_set_shape_transform ( RID body, int shape_idx, Transform transform )

设置身体形状的变换矩阵。

  • void body_set_space ( RID body, RID space )

为主体指定空间(请参见 space_create

设置身体状态(参见身体状态 * 常量)。

获取一个圆锥体扭曲关节参数(请参见圆锥体扭曲关节 * 常量)。

设置圆锥体扭曲关节参数(参见圆锥体扭曲关节 * 常量)。

  • void free_rid ( RID rid )

销毁物理服务器创建的任何对象。如果 RID 传递的对象不是物理服务器可以创建的对象之一,将向控制台发送错误。

获取通用的“联合”标志(请参见G6DOF“联合”标志 * 常量)。

获取通用的_6_-dof_-joint参数(请参见g6dof_-joint * 没有g6dof_joint_标志的常量 * )

设置通用的“关节”标志(参见G6DOF“关节”标志 * 常量)。

设置通用的“关节”参数(参见G6DOF“关节 * 没有g6dof_joint_标志的常量 * )

返回由 ProcessInfo 提供的输入。

获取铰链关节标记(参见铰链关节标记 * 常量)。

获取铰链接头参数(请参见铰链接头 * 没有铰链接头标志的常数 * )

设置铰链接头标志(参见铰链接头标志 * 常量)。

设置铰链接头参数(参见铰链接头 * 没有铰链接头标志的常数 * )

创建一个 ConeTwistJoint .

创建一个 Generic6DOFJoint .

创建一个 HingeJoint .

创建一个 PinJoint .

创建一个 SliderJoint .

  • int joint_get_solver_priority ( RID joint ) const

获取该关节的优先级值。

返回关节类型。

  • void joint_set_solver_priority ( RID joint, int priority )

设置关节的优先级值。

  • Vector3 pin_joint_get_local_a ( RID joint ) const

返回关节在关节体A的局部空间中的位置。

  • Vector3 pin_joint_get_local_b ( RID joint ) const

返回关节在关节体B的局部空间中的关节位置。

获取pin_joint参数(请参见pin_joint * 常量)。

  • void pin_joint_set_local_a ( RID joint, Vector3 local_A )

设置关节在关节体A的局部空间中的位置。

  • void pin_joint_set_local_b ( RID joint, Vector3 local_B )

设置关节在关节体B的局部空间中的位置。

设置销接头参数(参见销接头 * 常量)。

  • void set_active ( bool active )

激活或停用3D物理引擎。

创建类型的形状 SHAPE_* . 不将其指定给实体或区域。为此,您必须使用 area_set_shapebody_set_shape .

返回形状数据。

返回形状类型(请参见 SHAPE_* 常量)。

设置定义其形状和大小的形状数据。要传递的数据取决于创建的形状的类型 shape_get_type .

获取Slider_Joint参数(请参见Slider_Joint * 常量)。

获取Slider_Joint参数(请参见Slider_Joint * 常量)。

  • RID space_create ( )

创建空间。空间是物理引擎的参数集合,可以分配给一个区域或一个物体。它可以分配给 area_set_space 或对身体 body_set_space .

返回空间的状态,a PhysicsDirectSpaceState . 此对象可用于进行碰撞/交叉查询。

返回空间参数的值。

  • bool space_is_active ( RID space ) const

返回空间是否处于活动状态。

  • void space_set_active ( RID space, bool active )

将空间标记为活动。它不会有效果,除非它被分配到一个区域或身体。

设置空间参数的值。可用参数列表位于 SPACE_PARAM_* 常量。