unity official document: (Physics package concepts | Unity Physics | 1.0.0-pre.65 (unity3d.com))
Order of Simulation[1]
1. 从组件中获取数据(状态)
Unity Physics是无状态的,因此不保留当前帧以前的计算结果。每帧都重新从组件中获取数据进行计算。
2. BroadPhase
这个阶段通过物体是否激活等信息以及物体的包围盒BoundingBox是否重叠,来快速筛选出可能的碰撞并剔除无用的物体。
3. NarrowPhase
这个阶段使用物体的碰撞体精确地计算碰撞点。
4. 计算碰撞反馈
结合质量、惯性、摩擦、弹性、碰撞点计算碰撞反馈
5. 解析碰撞和结点限制关系
已知碰撞反馈,物体之间的限制,分析受力,给物体赋予速度、角速度、加速度等等
6. 推进模拟
根据时间间隔,各个物体以各自的速度运动
7. 应用Transform
将计算结果写入Transform组件中,从而影响物体的空间状态
Components[2]
Authoring Components:
- Physics Shape :设置碰撞体形状,Physics Material参数,如摩擦、弹力,其他碰撞参数(替代旧版的Collider)
- Physics Body:设置质量、惯性等(替代旧版的RigidBody)
- Physics Step: 一些物理的全局设置
- Physics Debug Display: Debug用,绘制辅助线条
网友评论