构造函数,创建物理刚体组件
Optionaloptions: RigidBodyOptions可选的初始化参数
注意:需要先启用物理系统才能创建刚体
物理分类标识,用于碰撞检测和过滤
注意:配合 categoryAccepted 使用可以控制哪些物体能够碰撞
摩擦系数,影响物体间的滑动阻力
取值范围:0-1,0 表示无摩擦,1 表示最大摩擦
脚本唯一标识符,通常由编辑器指定
是否为传感器模式
注意:传感器只检测碰撞但不产生物理反馈,常用于触发器
关节列表,描述刚体之间的连接关系
注意:关节会在组件唤醒时自动创建
脚本标签,用于快速识别和查找
Optionalon碰撞结束时的回调函数
注意:需要在组件唤醒前设置才能生效
Optionalon碰撞开始时的回调函数
注意:需要在组件唤醒前设置才能生效
弹性系数,影响碰撞后的反弹程度
取值范围:0-1,0 表示完全非弹性碰撞,1 表示完全弹性碰撞
物理刚体类型,决定物体的物理行为
注意:至少一个物体为 dynamic 才能产生碰撞反应
物理形状列表,描述碰撞区域
注意:为空则默认使用与节点同大小的矩形
是否允许旋转
注意:设为 false 则物体保持固定方向,不会因碰撞或力矩而旋转
是否允许休眠,用于性能优化
注意:休眠状态下物体不参与物理计算以提高性能
角阻尼系数,影响物体旋转的减速率
注意:值越大减速越快,用于控制旋转的衰减
角速度,物体旋转速度
单位:弧度/秒 注意:只对 dynamic 类型物体有效
脚本是否已被激活(添加到场景后触发)
是否为子弹模式,用于高速物体的连续碰撞检测
注意:高速物体设为 true 可减少穿透问题,但会增加性能开销
接受碰撞的分类列表,用于碰撞过滤
注意:为空则与所有物体碰撞,可以是字符串(逗号分隔)或字符串数组
脚本是否已被销毁
脚本是否启用,禁用时不执行更新且触发 onDisable
重力缩放系数,控制物体受重力影响的程度
注意:默认为 1,可设为负值使物体上浮,设为 0 可忽略重力
线性阻尼系数,影响物体线性运动的减速率
注意:值越大减速越快,用于控制移动的衰减
线性速度,物体当前运动速度向量
注意:只对 dynamic 和 kinematic 类型物体有效
刚体质量,由形状和密度自动计算(只读)
注意:质量影响物体的惯性和力的响应,无法直接设置
目标节点所在的场景引用(建议缓存为局部变量以提高性能)
是否处于休眠状态
注意:休眠时物体暂停物理计算,可手动控制唤醒或休眠
目标节点所在的舞台引用
Protected_$awake激活脚本(第一次执行),回调 onAwake
施加角冲量,立即改变物体角速度
角冲量值
注意:仅对 dynamic 类型且 allowRotation 为 true 的物体有效
施加力,会逐渐产生速度变化
力向量,包含 x 和 y 分量
作用点,默认为物体原点,相对于物体中心的偏移
注意:仅对 dynamic 类型物体有效,力量需足够大才能克服摩擦和重力
在物体中心点施加力,会逐渐改变物体速度
力向量
注意:仅对 dynamic 类型物体有效,力量需足够大才能克服摩擦和重力
施加线性冲量,立即改变物体速度
冲量向量
作用点,默认为物体原点
注意:仅对 dynamic 类型物体有效,效果比施加力更直接
施加扭矩,会逐渐产生角速度变化
扭矩值
注意:仅对 dynamic 类型且 allowRotation 为 true 的物体有效
销毁指定标签的关节
关节标签
注意:销毁后关节连接将断开,相关物体将不再约束
获取刚体当前位置
刚体位置坐标
获取刚体当前旋转角度
旋转角度(弧度)
组件唤醒时初始化物理刚体
设置刚体类型、添加形状、设置初始位置和角度,并注册碰撞事件和关节
组件销毁时清理物理刚体和关联的关节
组件禁用时停用物理刚体
组件启用时激活物理刚体
每帧更新物体位置和旋转
同步物理引擎计算结果到游戏对象,并检测边界。如果物体超出边界则销毁
设置刚体线性速度
Optionalx: numberx 方向速度,为 undefined 则保持当前速度
Optionaly: numbery 方向速度,为 undefined 则保持当前速度
注意:只对 dynamic 和 kinematic 类型物体有效
设置刚体位置
x 轴坐标
y 轴坐标
注意:如果物体使用了刚体,直接修改 node.position 是无效的,必须使用此方法
设置单个属性值
属性名
属性值
批量设置脚本属性
Optionalprops: Record<string, unknown>要设置的属性键值对
当前实例,支持链式调用
设置刚体旋转角度
旋转角度(弧度)
注意:会同时更新物理刚体和游戏对象的旋转
物理刚体组件,实现物理属性描述和碰撞区域定义。
注意:RigidBody 为一个脚本,挂载到节点后,需要添加到场景中才能被激活
Example