物理组件

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中恒力组件暂时无效。


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

results matching ""

    No results matching ""