3.9.3 物理组件

优质
小牛编辑
126浏览
2023-12-01

Cocos Creator 3D 目前为用户提供了多种碰撞器组件和通用的刚体组件,以及工具类的恒力组件。

:更多功能组件将会在后续版本持续发布,请留意版本更新公告。

碰撞器组件

碰撞器组件用于表示刚体的碰撞体形状,不同的几何形状拥有不同的属性。

:以下属性名称的首字母在实际代码中都为小写。 :目前在builtin中只支持盒、球、胶囊体。

盒碰撞器组件(BoxCollider)

盒碰撞器组件

属性解释
material碰撞器引用的物理材质(为空时引用物理系统的默认物理材质)
isTrigger是否为触发器,触发器不会产生物理反馈
center本地坐标系下形状的原点
size盒的大小,即长、宽、高

球碰撞器组件(SphereCollider)

球碰撞器组件

属性解释(其它参考盒碰撞器)
radius球的半径

圆柱碰撞器组件(CylinderCollider)

圆柱碰撞器组件

属性解释(其它参考盒碰撞器)
direction圆柱延申方向的参考轴
height圆柱的总高度
radius圆柱两端圆面的半径

胶囊碰撞器组件(CapsuleCollider)

胶囊碰撞器组件

属性解释(其它参考圆柱和盒碰撞器)
cylinderHeight胶囊中圆柱的高度
radius胶囊中球体的半径

cannon.js不支持胶囊组件,建议使用两个球和圆柱拼凑。

圆锥碰撞器组件(ConeCollider)

圆锥碰撞器组件

属性解释(其它参考圆柱和盒碰撞器)
radius圆锥中底面圆的半径
height圆锥的高度

平面碰撞器组件(PlaneCollider)

平面碰撞器组件

属性解释(其它参考盒碰撞器)
normal平面的法向量
constant平面沿着法向量移动的距离

网格碰撞器组件(MeshCollider)

网格碰撞器组件

属性解释(其它参考盒碰撞器)
mesh网格碰撞器引用的网格资源,用于初始化网格碰撞体
convex是否使用网格的凸包近似,网格顶点数应尽量小于255(通过它可以支持任意凸类碰撞体和动力学刚体)

cannon.js对网格碰撞器组件支持程度很差,只允许与球碰撞器产生检测。 convex功能目前仅ammo.js后端支持。

单纯形碰撞器组件(SimplexCollider)

单纯形碰撞器组件

属性解释(其它参考盒碰撞器)
shapeType单纯形类型,共有四种:点、线、三角面、四面体
vertex0单纯形的顶点0,点(由0组成)
vertex1单纯形的顶点1,线(由0、1组成)
vertex2单纯形的顶点2,三角面(以此类推)
vertex3单纯形的顶点3,四面体

刚体组件(RigidBody)

为了更便捷的模拟物理行为,Cocos Creator 3D为用户提供了刚体组件,预览图如下:

刚体组件

属性解释(上图的属性值都是默认值)
group分组
mass质量
linearDamping线性阻尼,用于减小物体的线性速率
angularDamping角阻尼,用于减小物体的旋转速率
isKinematic是否由用户来控制该刚体,而不受物理引擎的影响
useGravity是否受重力影响
fixedRotation碰撞时是否需要固定物体,而不产生旋转
linerFactor线性因数,可影响每个轴向的线性速度的变化
angularFactor旋转因数,可影响每个轴向的旋转速度的变化

builtin中刚体组件暂时无效。

恒力组件(ConstantForce)

这是一个工具组件,它依赖刚体组件,将会在每帧对一个刚体施加给定的力和扭矩。

恒力组件

属性解释
force在世界坐标系中对刚体施加的力
localForce在本地坐标系中对刚体施加的力
torque在世界坐标系中对刚体施加的扭矩
localTorque在本地坐标系中对刚体施加的扭矩

builtin中恒力组件暂时无效。


继续前往 物理使用 说明文档。