Composer 不支持刚体属性,因它不是物理引擎;刚体配置需在 Unity 等运行时环境设置,composer.json 中的 mass、gravity 等字段会被完全忽略。

Composer 没有刚体属性,也不支持方块堆叠或倒塌仿真——它根本不是物理引擎,连“刚体”这个概念都不存在。
你真正要查的,是 Unity、Cocos Creator 或 Three.js 等运行时环境里的 RigidBody 配置。而 composer.json 里写 "mass": 1、"gravity": 9.8 或 Type: DYNAMIC,只会被 Composer 完全忽略,既不报错,也不传递给任何物理系统。
为什么在 composer.json 里设刚体参数完全无效
Composer 的解析器只识别自己定义的字段,比如:require、autoload、config.cache-dir。所有物理相关 key(如 mass、drag、useGravity)都不在它的 schema 里。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 你运行
composer config --list,输出里永远不会有gravity或stiffness -
composer install不会读取、校验、转发任何物理参数 - 哪怕你把整个 PhysX 参数表 copy 进
composer.json,它也只当是注释处理
真实堆叠倒塌依赖哪几个关键刚体设置
以 Unity 为例,让方块自然堆叠并倒塌,必须同时满足以下条件,缺一不可:
- 每个方块节点必须同时挂载
Rigidbody和BoxCollider(或匹配模型形状的 collider) -
Rigidbody.type必须为DYNAMIC;设成STATIC或KINEMATIC就不会响应重力或碰撞力 -
Rigidbody.mass必须 > 0;设为 0 会导致物理引擎静默跳过该刚体 - 所有方块 collider 的
isTrigger必须为false;否则不参与碰撞检测 - 物理层(Layer)和碰撞矩阵(Project Settings > Physics > Layer Collision Matrix)必须启用对应层之间的交互
常见“堆叠不倒”或“穿模”的直接原因
不是代码写错了,而是物理配置链断在某个环节:
- 只加了
Rigidbody,没加Collider→ 物理引擎“看不见”这个物体 - Collider 尺寸远小于模型视觉范围 → 方块看着挨着,实际没接触,不触发碰撞
- 多个方块共用同一父节点且未冻结旋转(
Freeze Rotation),导致初始堆叠姿态不稳定,一帧就翻倒 -
Collision Detection保持默认Discrete,但方块下落速度太快 → 直接穿过地面 collider,需改用Continuous Dynamic - 全局重力为 0(
Edit > Project Settings > Physics > Gravity.y = 0)→ 所有 DYNAMIC 刚体都悬浮
刚体堆叠不是“加个组件就完事”,它依赖 collider 几何精度、质量比例、层过滤、CCD 模式、甚至 solver iteration 数值。最容易被跳过的,是检查 Physics > Layer Collision Matrix 里两个方块所在层是否真的勾选了交叉项——这里一关,再准的参数也没用。

















