Composer 与刚体、物理仿真完全无关;Cocos Creator 中需为节点同时添加 Collider 和 RigidBody 组件,正确设置 Type(STATIC/KINEMATIC/DYNAMIC)、Mass、Group 等参数才能启用物理仿真。

composer 和刚体、物理仿真完全无关——这是两个不同领域的工具,强行混用会导致配置错乱或行为不可预期。
你真正想查的,是 Cocos Creator(基于 cc 引擎)中如何为节点配置刚体(RigidBody)并启用基础物理仿真。而 composer 是 PHP 的依赖管理工具,它不处理任何 3D 物理、碰撞体或运动学参数。
为什么 composer config editor 不能设刚体类型
因为 composer 根本没有“刚体”“物理”“RigidBody”这类概念。它的 config 命令只管理自身行为,比如编辑器路径、镜像源、平台版本等。试图在 composer.json 或 composer config 里写 Type: DYNAMIC 或 Mass: 1,不会触发任何物理效果,只会让 Composer 忽略这些字段——它压根不解析它们。
RigidBody 必须和 Collider 配合才生效
只加 RigidBody 组件,节点不会参与碰撞检测或受力响应。必须同时添加碰撞体(如 BoxCollider、SphereCollider),且二者位于同一节点或父子关系正确。
- 错误做法:
this.node.addComponent(RigidBody)后没加 collider → 物理引擎“看不见”这个对象 - 正确顺序:先加 collider,再加 rigidbody;或用编辑器拖拽 Collider 组件后,再点 + 添加 RigidBody
- 注意质心偏移:若 collider 形状与模型视觉中心不一致,需手动调整
RigidBody.centerOfMass,否则旋转/下落会异常
Type 选错会导致运动完全失控
RigidBody.Type 决定物理更新方式,不是“可选项”,而是行为开关:
-
STATIC:适合地面、墙壁等固定物;但若误设给一个要被力推动的角色,它将纹丝不动,且不响应applyForce -
KINEMATIC:适合由脚本控制位移(如角色移动、门开合),它能触发碰撞但不被反作用力影响;UseGravity和Mass对它无效 -
DYNAMIC:唯一支持重力、力、扭矩、阻尼的类型;但必须确保Mass > 0,否则物理引擎静默忽略该刚体
常见坑:Type 在编辑器里改完不生效?检查脚本是否在运行时又覆盖了 rigidBody.type = RigidBodyType.STATIC —— 运行时赋值优先级高于编辑器设置。
刚体不是“设了就动”,它依赖整个物理帧同步、碰撞分组匹配、以及 collider 的几何精度。最容易被忽略的是:Group 设置不对,两个刚体哪怕贴在一起也不会触发 onCollisionEnter —— 因为引擎根本没把它们放进同一检测通道。











