unity-物理引擎系统(物理引擎)

1.游戏对象受力的影响是常见的游戏情景,比如赛车游戏,赛车受到推力、摩擦力、碰撞力等力的影响,产生运动。物理引擎是使得游戏对象能够模拟物理受力。

2.新建一个场景,简单地编辑之后,我们新建一个3D对象cube,来演示物理引擎的使用。新建的原生的立方体,在运行时,立方体漂浮在空中,之所以不向下落是因为没有给它添加重力。

3.现在给立方体增加一个物理引擎的刚体组件,然后再运行,发现立方体在重力的作用下掉落到了地面。刚体的属性有质量,是要用到对象上的质量。第二个是物体的阻力,阻力可用来减缓物体的速度,阻力越高物体减慢越快。第三个是物体的角阻力,角阻力可用来减缓物体的旋转。阻力越高旋转越慢。第四个是控制重力是否影响整个刚体,如果设置为false,刚体将不受重力影响。isKinematic : bool,控制物理学是否够影响这个刚体。如果isKinematic启用,力、碰撞或关节将不会影响这个刚体。刚体将通过改变transform.postion根据动画或脚本完全控制。动力学刚体也会通过碰撞或关节影响其他刚体的运动。例如,可以使用关节链接动力学刚体到一个普通的刚体,并且这个刚体将受到动力学刚体运动的约束。动力学刚体也被用于制作角色,它们通常是由动画驱动,但是在某些事件可以通过设置isKinematic为false,快速转化为一个布娃娃。

4.interpolation插值允许你以固定的帧率平滑物理运行效果。插值默认是关闭的。通常刚体插值用于玩家角色。物理是不连续的时间步运行,而显卡以可变的帧率渲染。这可能导致物体抖动,因为物理和显卡不完全同步。这个效果是细微的但是通常会在玩家角色上看到,尤其是如果相机跟随主角色。建议为主角色打开插值,但其他的禁用。

5.collisionDetectionMode刚体的碰撞检测模式。使用这个创建一个刚体的连续碰撞检测,从没有碰撞检测的其他物体传递,用来防止快速移动的物体,为了获得最佳效果,为快速移动的物体设置这个值为CollisionDetectionMode.ContinuousDynamic,以及为其他与之需要碰撞的物体设置这个值,为CollisionDetectionMode.Continuous。这个对物理性能有很大影响,所以只要给它设置为默认值 CollisionDetectionMode.Discrete,假如快速物体的碰撞没有任何问题。连续碰撞检测只支持刚体的球体、胶囊或盒子碰撞器。

转载自http://www.9miao.com/?313873

刚体组件参数

mass: 质量,默认1;

Drag:阻力,模拟空气阻力,0意味无空气阻力;

angular drag:角阻力,使旋转变慢;

use gravity:是否受重力影响;

is kindmatic:是否受到物理引擎影响,不勾表示受到影响,相当于物理引擎的开关

interpolate:差值,帧之间移动更平滑

collision Detection:碰撞检测,三种:非连续、连续、连续动态

constants:勾选则表示某一个方向锁死,如勾选X,表示X轴方向不动

你可能感兴趣的:(unity-物理引擎系统(物理引擎))