物理组件
Cocos Creator 目前为用户提供了多种碰撞器组件和通用的刚体组件,以及工具类的恒力组件。
注:更多功能组件将会在后续版本持续发布,请留意版本更新公告。
碰撞器组件
碰撞器组件用于表示刚体的碰撞体形状,不同的几何形状拥有不同的属性。
注:以下属性名称的首字母在实际代码中都为小写。
注:目前在 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,四面体
注:cannon.js对点、四面体支持的更加完整。
刚体组件 RigidBody
为了更便捷的模拟物理行为,Cocos Creator为用户提供了刚体组件,预览图如下:
属性
解释(上图的属性值都是默认值)
group
分组
type
刚体类型(下方属性仅对 DYNAMIC 类型的刚体有用)
mass
质量,DYNAMIC 类型的刚体的质量应大于 0
allowSleep
是否允许休眠
linearDamping
线性阻尼,用于减小物体的线性速率
angularDamping
角阻尼,用于减小物体的旋转速率
useGravity
是否受重力影响
linerFactor
线性因数,可影响每个轴向的线性速度的变化
angularFactor
旋转因数,可影响每个轴向的旋转速度的变化
恒力组件 ConstantForce
这是一个工具组件,它依赖刚体组件,将会在每帧对一个刚体施加给定的力和扭矩。
属性
解释
force
在世界坐标系中对刚体施加的力
localForce
在本地坐标系中对刚体施加的力
torque
在世界坐标系中对刚体施加的扭矩
localTorque
在本地坐标系中对刚体施加的扭矩