每个物体都有着不同的摩擦力。光滑的冰面摩擦力很小,而地毯表面的摩擦力则很大。另外每种材料也有着不同的弹性,橡皮表面的弹性大,硬质地面的弹性小。在Unity中这些现象都符合日常的理念。虽然从原理上讲,物体的摩擦力和弹性有着更复杂的内涵,例如普通的钢板看起来并没有太多弹性,但在合适的条件下却可以用来作为弹簧板。
Unity的物理引擎对物体表面材料的性质做了简化处理,仅有5种常用属性,但可以满足大多数游戏的需求。在Project窗口中单击鼠标右键,选择Create→Physics Material,就可以创建一个物理材质。物理材质的参数被简单定义为Dynamic Friction(动态摩擦系数)、Static Friction(静态摩擦系数)、Bounciness(弹性系数)、与其他物体接触时的Friction Combine(摩擦力系数算法)和Bounce Combine(弹性系数算法)
动态摩擦系数就是物体之间正在相对滑动时的摩擦系数。
例如0.1代表很光滑的表面,0.9代表很粗糙的表面。
静态摩擦系数就是物体之间没有相对滑动时的摩擦系数。
现实生活中,物体的静态摩擦力一般略大于动态摩擦力,当然在游戏世界中可以随意调节它们的大小。
弹性系数可以调节物体反弹力的大小。例如0.8可以代表充气很足的篮球,0则代表没有任何反弹力。
弹性系数一般不能高于0.9,否则会导致物体反弹的速度比撞击前的速度还快,这样它会变得越来越快,没有止境。
最后两个参数决定了两个物体表面都具有摩擦系数和弹性系数时,如何计算综合的摩擦系数和弹性系数。可选择取平均值、取最大值、取最小值或相乘4种方式。
最后,有3点值得说明。
一是物理材质是配合碰撞体使用的。
碰撞体有一个“材质”(Material)的属性,这里自然不是指渲染材质,而是指物理材质
。将创建好的物理材质拖曳到该属性上即可指定该属性。
二是不指定任何物理材质时,碰撞体具有默认的物理材质(也就是也会有简单的弹性和摩擦)。
三 良好的弹性和碰撞的两个物体的物理材质都有关系,和生活中一样!
Unity基础课程之物理引擎5-射线的使用方法总结-CSDN博客
Unity基础课程之物理引擎4-用于射击或者点击消除的射线检测方法-CSDN博客