1
2
3
4
5
6
7

物理引擎

发布时间:2018-12-15 11:48   发布人:焦卫峰   浏览次数:521

1. RigidBody组件

刚体能让你的游戏对象被物理引擎所控制,它能通过受到推力和扭力来实现真实的物理表现效果。所有游戏对象必须包含刚体组件来实现重力、通过脚本施加力、或者与其他对象进行交互。

Mass 质量

Drag 空气阻力,为0表示没有阻力,阻力极大时游戏物体会立即停止运动

Angular Drag 角阻力,游戏对象受到扭矩力旋转时受到的阻力,阻力极大时游戏物体会立即停止旋转

Use Gravity 是否受重力影响

Is Kinematic 是否开启动力学,如果启用该参数,则对象不会受物理引擎的影响,只能通过Transform直接设置位置、旋转和缩放来操作它。

Interpolate 插值 控制刚体运动的抖动情况

None表示没有插值,Interpolate表示根据上一帧的Transform来平滑此次的Transform,Extrapolate表示根据下一帧的Transform来平滑此次的Transform

Collision Detection 碰撞检测算法,用于防止刚体因快速移动而穿过其他对象

默认为Discrete离散式碰撞检测,与场景中的其他的所有碰撞体进行碰撞检测。Continuous,这时碰撞检测算法将会防止对象穿过所有的静态碰撞体,设置为Continuous Dynamic将还会防止穿过其他也设置为Continuous或者Continuous Dynamic的刚体。

Constraints 刚体运动的约束,包括位置约束和旋转约束,勾选表示在该坐标上不允许进行此类操作

2. 碰撞体Collider组件

Box Collider、Sphere Collider、Capsule Collider、Mesh Collider等等

Edit Collider 编辑碰撞体

点击控制点后,按alt键或者shift键的作用

Is Trigger 触发器

选中该项,该碰撞体可用于触发事件,同时忽略物理碰撞。

Material 物理材质

采用不同的物理材质类型决定了碰撞体与其他对象的交互形式。

 

物理材质

Friction 摩擦力 Bounciness 弹力

FrictionCombine 摩擦力组合  BounceCombine 弹力组合

3.OnCollision和OnTrigger

MonoBehaviour类中的OnCollisionXXX方法和OnTriggerXXX方法

XXX可以是Enter、Stay和Exit

 

OnTrigger和OnCollision的区别:

实现Collision碰撞的条件是,发起碰撞方必须具有刚体RigidBody。

OnTrigger模式下,必须有一个有刚体(Rigidbody),有一个Collider勾选了Is Trigger。

 

为什么不干脆把两个物体都加上刚体?

物体如果都有刚体那么对系统的开销很大。例如地面就可以不设置刚体,因为地面是永远不动的,把人物设置刚体就可以实现真实的物理碰撞效果了。