跳到主要内容

PhysicsServer

继承

Object

简要描述

用于底层物理访问的服务器接口。

描述

PhysicsServer是负责所有3D物理的服务器,它可以创建各种物理对象,但是不会添加它们到节点树中

方法

返回值类型方法名称
voidarea_add_shape(area: RID, shape: RID, transform: Transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 ), disabled: bool = false)
voidarea_attach_object_instance_id(area: RID, id: int)
voidarea_clear_shapes(area: RID)
RIDarea_create()
intarea_get_object_instance_id(area: RID) const
Variantarea_get_param(area: RID, param: int) const
RIDarea_get_shape(area: RID, shape_idx: int) const
intarea_get_shape_count(area: RID) const
Transformarea_get_shape_transform(area: RID, shape_idx: int) const
RIDarea_get_space(area: RID) const
intarea_get_space_override_mode(area: RID) const
Transformarea_get_transform(area: RID) const
boolarea_is_ray_pickable(area: RID) const
voidarea_remove_shape(area: RID, shape_idx: int)
voidarea_set_area_monitor_callback(area: RID, receiver: Object, method: String)
voidarea_set_collision_layer(area: RID, layer: int)
voidarea_set_collision_mask(area: RID, mask: int)
voidarea_set_monitor_callback(area: RID, receiver: Object, method: String)
voidarea_set_monitorable(area: RID, monitorable: bool)
voidarea_set_param(area: RID, param: int, value: Variant)
voidarea_set_ray_pickable(area: RID, enable: bool)
voidarea_set_shape(area: RID, shape_idx: int, shape: RID)
voidarea_set_shape_disabled(area: RID, shape_idx: int, disabled: bool)
voidarea_set_shape_transform(area: RID, shape_idx: int, transform: Transform)
voidarea_set_space(area: RID, space: RID)
voidarea_set_space_override_mode(area: RID, mode: int)
voidarea_set_transform(area: RID, transform: Transform)
voidbody_add_central_force(body: RID, force: Vector3)
voidbody_add_collision_exception(body: RID, excepted_body: RID)
voidbody_add_force(body: RID, force: Vector3, position: Vector3)
voidbody_add_shape(body: RID, shape: RID, transform: Transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 ), disabled: bool = false)
voidbody_add_torque(body: RID, torque: Vector3)
voidbody_apply_central_impulse(body: RID, impulse: Vector3)
voidbody_apply_impulse(body: RID, position: Vector3, impulse: Vector3)
voidbody_apply_torque_impulse(body: RID, impulse: Vector3)
voidbody_attach_object_instance_id(body: RID, id: int)
voidbody_clear_shapes(body: RID)
RIDbody_create(mode: int = 2, init_sleeping: bool = false)
intbody_get_collision_layer(body: RID) const
intbody_get_collision_mask(body: RID) const
PhysicsDirectBodyStatebody_get_direct_state(body: RID)
floatbody_get_kinematic_safe_margin(body: RID) const
intbody_get_max_contacts_reported(body: RID) const
intbody_get_mode(body: RID) const
intbody_get_object_instance_id(body: RID) const
floatbody_get_param(body: RID, param: int) const
RIDbody_get_shape(body: RID, shape_idx: int) const
intbody_get_shape_count(body: RID) const
Transformbody_get_shape_transform(body: RID, shape_idx: int) const
RIDbody_get_space(body: RID) const
Variantbody_get_state(body: RID, state: int) const
boolbody_is_axis_locked(body: RID, axis: int) const
boolbody_is_continuous_collision_detection_enabled(body: RID) const
boolbody_is_omitting_force_integration(body: RID) const
boolbody_is_ray_pickable(body: RID) const
voidbody_remove_collision_exception(body: RID, excepted_body: RID)
voidbody_remove_shape(body: RID, shape_idx: int)
voidbody_set_axis_lock(body: RID, axis: int, lock: bool)
voidbody_set_axis_velocity(body: RID, axis_velocity: Vector3)
voidbody_set_collision_layer(body: RID, layer: int)
voidbody_set_collision_mask(body: RID, mask: int)
voidbody_set_enable_continuous_collision_detection(body: RID, enable: bool)
voidbody_set_force_integration_callback(body: RID, receiver: Object, method: String, userdata: Variant = null)
voidbody_set_kinematic_safe_margin(body: RID, margin: float)
voidbody_set_max_contacts_reported(body: RID, amount: int)
voidbody_set_mode(body: RID, mode: int)
voidbody_set_omit_force_integration(body: RID, enable: bool)
voidbody_set_param(body: RID, param: int, value: float)
voidbody_set_ray_pickable(body: RID, enable: bool)
voidbody_set_shape(body: RID, shape_idx: int, shape: RID)
voidbody_set_shape_disabled(body: RID, shape_idx: int, disabled: bool)
voidbody_set_shape_transform(body: RID, shape_idx: int, transform: Transform)
voidbody_set_space(body: RID, space: RID)
voidbody_set_state(body: RID, state: int, value: Variant)
floatcone_twist_joint_get_param(joint: RID, param: int) const
voidcone_twist_joint_set_param(joint: RID, param: int, value: float)
voidfree_rid(rid: RID)
boolgeneric_6dof_joint_get_flag(joint: RID, axis: int, flag: int)
floatgeneric_6dof_joint_get_param(joint: RID, axis: int, param: int)
voidgeneric_6dof_joint_set_flag(joint: RID, axis: int, flag: int, enable: bool)
voidgeneric_6dof_joint_set_param(joint: RID, axis: int, param: int, value: float)
intget_process_info(process_info: int)
boolhinge_joint_get_flag(joint: RID, flag: int) const
floathinge_joint_get_param(joint: RID, param: int) const
voidhinge_joint_set_flag(joint: RID, flag: int, enabled: bool)
voidhinge_joint_set_param(joint: RID, param: int, value: float)
RIDjoint_create_cone_twist(body_A: RID, local_ref_A: Transform, body_B: RID, local_ref_B: Transform)
RIDjoint_create_generic_6dof(body_A: RID, local_ref_A: Transform, body_B: RID, local_ref_B: Transform)
RIDjoint_create_hinge(body_A: RID, hinge_A: Transform, body_B: RID, hinge_B: Transform)
RIDjoint_create_pin(body_A: RID, local_A: Vector3, body_B: RID, local_B: Vector3)
RIDjoint_create_slider(body_A: RID, local_ref_A: Transform, body_B: RID, local_ref_B: Transform)
intjoint_get_solver_priority(joint: RID) const
intjoint_get_type(joint: RID) const
voidjoint_set_solver_priority(joint: RID, priority: int)
Vector3pin_joint_get_local_a(joint: RID) const
Vector3pin_joint_get_local_b(joint: RID) const
floatpin_joint_get_param(joint: RID, param: int) const
voidpin_joint_set_local_a(joint: RID, local_A: Vector3)
voidpin_joint_set_local_b(joint: RID, local_B: Vector3)
voidpin_joint_set_param(joint: RID, param: int, value: float)
voidset_active(active: bool)
RIDshape_create(type: int)
Variantshape_get_data(shape: RID) const
intshape_get_type(shape: RID) const
voidshape_set_data(shape: RID, data: Variant)
floatslider_joint_get_param(joint: RID, param: int) const
voidslider_joint_set_param(joint: RID, param: int, value: float)
RIDspace_create()
PhysicsDirectSpaceStatespace_get_direct_state(space: RID)
floatspace_get_param(space: RID, param: int) const
boolspace_is_active(space: RID) const
voidspace_set_active(space: RID, active: bool)
voidspace_set_param(space: RID, param: int, value: float)

枚举

enum JointType:

  • **JOINT_PIN = 0**

JointPinJoint

  • **JOINT_HINGE = 1**

JointHingeJoint

  • **JOINT_SLIDER = 2**

JointSliderJoint

  • **JOINT_CONE_TWIST = 3**

JointConeTwistJoint

  • **JOINT_6DOF = 4**

JointGeneric6DOFJoint


enum PinJointParam:

  • **PIN_JOINT_BIAS = 0**

固定对象尝试保持彼此位置关系的强度。

越高,越强。

  • **PIN_JOINT_DAMPING = 1**

固定对象尝试保持彼此速度关系的强度。

越高,越强。

  • **PIN_JOINT_IMPULSE_CLAMP = 2**

如果大于0,则此值为该关节末端施加脉冲的最大值。


enum 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**

电机的最大加速度。


enum HingeJointFlag:

  • **HINGE_JOINT_FLAG_USE_LIMIT = 0**

如果true,则铰链具有最大和最小旋转角度。

  • **HINGE_JOINT_FLAG_ENABLE_MOTOR = 1**

如果true,则电机转动铰链。


enum 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枚举的大小。


enum 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**

定义两侧的摆动速度和扭转速度差异同步的速度。


enum G6DOFJointAxisParam:

  • **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**

电机在轴上的最大加速度。


enum 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设置,则该轴上有一个以特定速度为目标的直线电机。


enum ShapeType:

  • **SHAPE_PLANE = 0**

ShapePlaneShape

  • **SHAPE_RAY = 1**

ShapeRayShape

  • **SHAPE_SPHERE = 2**

ShapeSphereShape

  • **SHAPE_BOX = 3**

ShapeBoxShape

  • **SHAPE_CAPSULE = 4**

ShapeCapsuleShape

  • **SHAPE_CYLINDER = 5**

ShapeCylinderShape

  • **SHAPE_CONVEX_POLYGON = 6**

ShapeConvexPolygonShape

  • **SHAPE_CONCAVE_POLYGON = 7**

ShapeConcavePolygonShape

  • **SHAPE_HEIGHTMAP = 8**

ShapeHeightMapShape

  • **SHAPE_CUSTOM = 9**

该常量由引擎内部使用,任何想创建这种类型的形状的操作都会失败


enum 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**

设置/获取区域优先级(处理顺序)的常数。


enum 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**

该区域将替换到目前为止计算出的所有重力/阻尼,但会继续计算其余区域,直到默认区域。


enum BodyMode:

  • **BODY_MODE_STATIC = 0**

静态实体常数。

  • **BODY_MODE_KINEMATIC = 1**

运动实体常数。

  • **BODY_MODE_RIGID = 2**

刚体常数。

  • **BODY_MODE_CHARACTER = 3**

角色模式下的刚体常数。


enum 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枚举的大小。


enum BodyState:

  • **BODY_STATE_TRANSFORM = 0**

常数,用于设置/获取实体的当前变换矩阵。

  • **BODY_STATE_LINEAR_VELOCITY = 1**

常数,用于设置/获取当前实体的线速度。

  • **BODY_STATE_ANGULAR_VELOCITY = 2**

常数,用于设置/获取当前实体的角速度。

  • **BODY_STATE_SLEEPING = 3**

保持休眠/唤醒实体或获取是否正在休眠的常量。

  • **BODY_STATE_CAN_SLEEP = 4**

设置/获取实体是否可以休眠的常数。


enum AreaBodyStatus:

  • **AREA_BODY_ADDED = 0**

当对象进入其形状之一时,将接收第一个参数和区域回调函数的值。

  • **AREA_BODY_REMOVED = 1**

当对象退出其形状之一时,将接收第一个参数和区域回调函数的值。


enum ProcessInfo:

  • **INFO_ACTIVE_OBJECTS = 0**

用于获取未休眠的对象数的常数。

  • **INFO_COLLISION_PAIRS = 1**

获取可能的碰撞次数的常数。

  • **INFO_ISLAND_COUNT = 2**

用于获取可能发生碰撞的空间区域数的常数。


enum 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**

enum 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**

方法说明

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

向该区域添加形状以及变换矩阵,形状一般通过索引来引用,所以你可以通过制定的索引获取到对应的形状信息


  • area_attach_object_instance_id area_attach_object_instance_id(area: RID, id: int)

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


  • area_clear_shapes area_clear_shapes(area: RID)

移除区域中的所有形状,这不会真正的删除形状对象,所以你还可以将这些形状添加回来


  • area_create area_create()

创建一个[区域]


  • area_get_object_instance_id area_get_object_instance_id(area: RID) const

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


  • area_get_param area_get_param(area: RID, param: int) const

返回区域参数值,参见 AreaParameter 获取可用的参数列表


  • area_get_shape area_get_shape(area: RID, shape_idx: int) const

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


  • area_get_shape_count area_get_shape_count(area: RID) const

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


  • area_get_shape_transform area_get_shape_transform(area: RID, shape_idx: int) const

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


  • area_get_space area_get_space(area: RID) const

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


  • area_get_space_override_mode area_get_space_override_mode(area: RID) const

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


  • area_get_transform area_get_transform(area: RID) const

返回区域的变换矩阵。


  • area_is_ray_pickable area_is_ray_pickable(area: RID) const

如果true,则区域与射线碰撞。


  • area_remove_shape area_remove_shape(area: RID, shape_idx: int)

从区域中移除形状,这不会真正删除这些形状对象,所以你还可以将这些形状再赋值回来


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

  • area_set_collision_layer area_set_collision_layer(area: RID, layer: int)

将区域分配给一个或多个物理层。


  • area_set_collision_mask area_set_collision_mask(area: RID, mask: int)

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


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

设置要在任何身体/区域进入或离开该区域时调用的函数,当有任务对象和该区域产生交互时,这个回调函数将会被调用,5个参数分别是:

1:[常量AREA_BODY_ADDED][常量AREA_BODY_REMOVED],取决于对象是进入还是退出区域。

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

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

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

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


  • area_set_monitorable area_set_monitorable(area: RID, monitorable: bool)

  • area_set_param area_set_param(area: RID, param: int, value: Variant)

设置区域参数的值,参见AreaParameter获取可用的参数列表


  • area_set_ray_pickable area_set_ray_pickable(area: RID, enable: bool)

设置射线可拾取的对象。


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

用另一个替换给定的区域形状,通过索引来选择旧的形状,通过RID来选择新的形状


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

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

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


  • area_set_space area_set_space(area: RID, space: RID)

为该区域分配一个空间。


  • area_set_space_override_mode area_set_space_override_mode(area: RID, mode: int)

设置区域的空间替代模式,参见AreaSpaceOverrideMode选取可用的模式


  • area_set_transform area_set_transform(area: RID, transform: Transform)

设置区域的变换矩阵。


  • body_add_central_force body_add_central_force(body: RID, force: Vector3)

  • body_add_collision_exception body_add_collision_exception(body: RID, excepted_body: RID)

将一个实体添加到免于碰撞的实体列表中。


  • body_add_force body_add_force(body: RID, force: Vector3, position: Vector3)

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

向实体添加形状以及变换矩阵。


  • body_add_torque body_add_torque(body: RID, torque: Vector3)

  • body_apply_central_impulse body_apply_central_impulse(body: RID, impulse: Vector3)

  • body_apply_impulse body_apply_impulse(body: RID, position: Vector3, impulse: Vector3)

给实体沿脉冲的方向position一个推力。


  • body_apply_torque_impulse body_apply_torque_impulse(body: RID, impulse: Vector3)

给实体一个推力来旋转它。


  • body_attach_object_instance_id body_attach_object_instance_id(body: RID, id: int)

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


  • body_clear_shapes body_clear_shapes(body: RID)

从实体中移除所有形状。


  • body_create body_create(mode: int = 2, init_sleeping: bool = false)

创建一个物理实体,第一个参数可以从BodyMode选取,至于实体的创建,实体可以从休眠状态中创建,以此来节约处理时间


  • body_get_collision_layer body_get_collision_layer(body: RID) const

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


  • body_get_collision_mask body_get_collision_mask(body: RID) const

返回物体可以碰撞的物理层。

--


  • body_get_direct_state body_get_direct_state(body: RID)

返回实体的PhysicsDirectBodyState


  • body_get_kinematic_safe_margin body_get_kinematic_safe_margin(body: RID) const

  • body_get_max_contacts_reported body_get_max_contacts_reported(body: RID) const

返回可以报告的最大联系人数量,参见body_set_max_contacts_reported


  • body_get_mode body_get_mode(body: RID) const

返回实体模式。


  • body_get_object_instance_id body_get_object_instance_id(body: RID) const

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


  • body_get_param body_get_param(body: RID, param: int) const

返回实体参数的值,参见BodyParameter获取可用的参数列表


  • body_get_shape body_get_shape(body: RID, shape_idx: int) const

返回实体的第n个形状的RID


  • body_get_shape_count body_get_shape_count(body: RID) const

返回分配给实体的形状数量。


  • body_get_shape_transform body_get_shape_transform(body: RID, shape_idx: int) const

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


  • body_get_space body_get_space(body: RID) const

返回分配给实体的空间的RID


  • body_get_state body_get_state(body: RID, state: int) const

返回实体状态。


  • body_is_axis_locked body_is_axis_locked(body: RID, axis: int) const

  • body_is_continuous_collision_detection_enabled body_is_continuous_collision_detection_enabled(body: RID) const

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


  • body_is_omitting_force_integration body_is_omitting_force_integration(body: RID) const

返回物体是否使用回调函数来计算其自身的物理特性(请参见method_body_set_force_integration_callback(#method_body_set_force_integration_callback))。


  • body_is_ray_pickable body_is_ray_pickable(body: RID) const

如果true为真,则可以通过射线检测到实体。


  • body_remove_collision_exception body_remove_collision_exception(body: RID, excepted_body: RID)

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

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


  • body_remove_shape body_remove_shape(body: RID, shape_idx: int)

从实体中移除一个形状,这个形状的对象并没有被删除,所以你还可以将它赋值回来


  • body_set_axis_lock body_set_axis_lock(body: RID, axis: int, lock: bool)

  • body_set_axis_velocity body_set_axis_velocity(body: RID, axis_velocity: Vector3)

设置轴速度,这个速度会被设置为,给定轴的方向,大小为这个向量的长度,这对于跳跃行为很有帮助


  • body_set_collision_layer body_set_collision_layer(body: RID, layer: int)

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


  • body_set_collision_mask body_set_collision_mask(body: RID, mask: int)

设置物体可以碰撞的物理层。


  • body_set_enable_continuous_collision_detection body_set_enable_continuous_collision_detection(body: RID, enable: bool)

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

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


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

设置用于计算对象物理的函数(如果该对象允许的话)(参见method_body_set_omit_force_integration)。


  • body_set_kinematic_safe_margin body_set_kinematic_safe_margin(body: RID, margin: float)

  • body_set_max_contacts_reported body_set_max_contacts_reported(body: RID, amount: int)

设置要报告的最大联系人数量,该实体可以保持观察其他的实体,这个功能会在你设置的最大联系人参数大于0时生效


  • body_set_mode body_set_mode(body: RID, mode: int)

BodyMode常量之一设置实体模式。


  • body_set_omit_force_integration body_set_omit_force_integration(body: RID, enable: bool)

设置物体是否使用回调函数来计算其自身的物理特性(参见method_body_set_force_integration_callback(#method_body_set_force_integration_callback))。


  • body_set_param body_set_param(body: RID, param: int, value: float)

设置实体参数,参见BodyParameter获取可用的参数列表


  • body_set_ray_pickable body_set_ray_pickable(body: RID, enable: bool)

如果设置了enabled,则该实体可以被射线拾取。


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

用另一个替换给定的实体形状,旧的形状通过索引来选择,新的形状通过RID来指定


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

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

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


  • body_set_space body_set_space(body: RID, space: RID)

为实体分配一个空间(参见space_create)。


  • body_set_state body_set_state(body: RID, state: int, value: Variant)

设置实体状态(参见BodyState常量)。


  • cone_twist_joint_get_param cone_twist_joint_get_param(joint: RID, param: int) const

获取参数cone_twist_joint(参见ConeTwistJointParam常量)。


  • cone_twist_joint_set_param cone_twist_joint_set_param(joint: RID, param: int, value: float)

设置锥度_twist_joint参数(参见ConeTwistJointParam常量)。


  • free_rid free_rid(rid: RID)

销毁PhysicsServer创建的所有对象,如果传入的RID对象不是通过PhysicsServer创建的,那么将会发送错误信息到控制台中


  • generic_6dof_joint_get_flag generic_6dof_joint_get_flag(joint: RID, axis: int, flag: int)

获取generic_6_DOF_joint标志(参见[枚举G6DOFJointAxisFlag]常量)。


  • generic_6dof_joint_get_param generic_6dof_joint_get_param(joint: RID, axis: int, param: int)

获取generic_6_DOF_joint参数(参见[枚举G6DOFJointAxisParam]常量)。


  • generic_6dof_joint_set_flag generic_6dof_joint_set_flag(joint: RID, axis: int, flag: int, enable: bool)

设置一个generic_6_DOF_joint标志(参见G6DOFJointAxisFlag常量)。


  • generic_6dof_joint_set_param generic_6dof_joint_set_param(joint: RID, axis: int, param: int, value: float)

设置一个generic_6_DOF_joint参数(参见G6DOFJointAxisParam常量)。


  • get_process_info get_process_info(process_info: int)

返回由给定的ProcessInfo输入定义的信息。


  • hinge_joint_get_flag hinge_joint_get_flag(joint: RID, flag: int) const

获取铰链连接标志(参见HingeJointFlag常量)。


  • hinge_joint_get_param hinge_joint_get_param(joint: RID, param: int) const

获取一个铰链连接参数(参见HingeJointParam)。


  • hinge_joint_set_flag hinge_joint_set_flag(joint: RID, flag: int, enabled: bool)

设置一个铰链连接标志(参见HingeJointFlag常量)。


  • hinge_joint_set_param hinge_joint_set_param(joint: RID, param: int, value: float)

设置一个铰链连接参数(参见HingeJointParam常量)。


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

创建一个ConeTwistJoint


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

创建一个Generic6DOFJoint


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

创建一个HingeJoint


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

创建一个PinJoint


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

创建一个SliderJoint


  • joint_get_solver_priority joint_get_solver_priority(joint: RID) const

获取关节的优先级值。


  • joint_get_type joint_get_type(joint: RID) const

返回关节的类型。


  • joint_set_solver_priority joint_set_solver_priority(joint: RID, priority: int)

设置关节的优先级值。


  • pin_joint_get_local_a pin_joint_get_local_a(joint: RID) const

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


  • pin_joint_get_local_b pin_joint_get_local_b(joint: RID) const

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


  • pin_joint_get_param pin_joint_get_param(joint: RID, param: int) const

获取pin_joint参数(参见PinJointParam常量)。


  • pin_joint_set_local_a pin_joint_set_local_a(joint: RID, local_A: Vector3)

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


  • pin_joint_set_local_b pin_joint_set_local_b(joint: RID, local_B: Vector3)

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


  • pin_joint_set_param pin_joint_set_param(joint: RID, param: int, value: float)

设置pin_joint参数(参见PinJointParam常量)。


  • set_active set_active(active: bool)

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


  • shape_create shape_create(type: int)

ShapeType创建形状,别把它赋值给一个实体或者区域对象,要这样做的话,你必须使用area_set_shape 或者 body_set_shape


  • shape_get_data shape_get_data(shape: RID) const

返回形状数据。


  • shape_get_type shape_get_type(shape: RID) const

返回形状的类型(参见ShapeType常量)。


  • shape_set_data shape_set_data(shape: RID, data: Variant)

设置定义其形状和大小的形状数据,传入的data参数依赖于shape_get_type创建的形状类型


  • slider_joint_get_param slider_joint_get_param(joint: RID, param: int) const

获取一个slider_joint参数(参见SliderJointParam常量)。


  • slider_joint_set_param slider_joint_set_param(joint: RID, param: int, value: float)

获取一个slider_joint参数(参见SliderJointParam常量)。


  • space_create space_create()

创建一个空间,空间是一组物理引擎中用于分配到区域对象或者实体对象上的数据集合,它可以通过area_set_space分配到区域对象上,或者通过body_set_space分配到实体对象上


  • space_get_direct_state space_get_direct_state(space: RID)

返回空间的状态,即PhysicsDirectSpaceState,这个对象可以用于查询碰撞/相交


  • space_get_param space_get_param(space: RID, param: int) const

返回空间参数的值。


  • space_is_active space_is_active(space: RID) const

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


  • space_set_active space_set_active(space: RID, active: bool)

将空间标记为活动空间,直到把这个空间分配给区域或者实体对象前,它并不会生效


  • space_set_param space_set_param(space: RID, param: int, value: float)

设置空间参数的值,参见SpaceParameter获取可用的参数列表