【Unity】11.4 车轮碰撞体(Wheel Collider)
分类:Unity、C#、VS2015
创建日期:2016-05-02
一、简介
车轮碰撞体 (Wheel Collider)专门用于创建汽车或其他移动交通工具。
车轮碰撞体是一种针对地面车辆的特殊碰撞体。它有内置的碰撞检测、车轮物理系统及有滑胎摩擦的参考体。除了车轮,该碰撞体也可用于其他的游戏对象。
二、相关属性
1、Mass
质量。该项用于设置车轮碰撞体的质量。
2、Radus
半径。该项用于设置车轮碰撞体半径大小。
3、Suspension Distance
悬挂距离。该项用于设置车轮碰撞体悬挂的最大伸长距离,按照局部坐标来计算。悬挂总是通过其局部坐标的Y轴延伸向下。
4、Center
中心。该项用于设置车轮碰撞体在对象局部坐标的中心。
5、Suspension Spring
悬挂弹簧。该项用于设置车轮碰撞体通过添加弹簧和阻尼外力使得悬挂达到目标位置。
Spring:弹簧。弹簧力度越大,悬挂到达目标位置也就越快。
Damper:阻尼器。阻尼器控制着悬挂的速度,数值越大悬挂弹簧移动速度越慢。
Target Position:目标位置。悬挂沿着其方向上的静止时的距离。其值为0时悬挂为完全伸展状态,值为1时为完全压缩状态,默认值为0,这与常规的汽车悬挂状态相匹配。
6、其他属性
Forward Friction:向前摩擦力。当轮胎向前滚动时的摩擦力属性。
Extremum Slip:滑动极值。
Extmmum Value:极限值。
Asymptote Value:滑动渐进值。
Asymptote Va!ue:渐近值。
Stiffness Faction:刚性因子。
Slidways Friction:侧向摩擦力。当轮胎侧向滚动时的摩擦力属性。
三、说明
车轮的碰撞检测是通过从局部坐标竹由向下投射一条射线来实现的。车轮有一个通过悬挂距离向下延伸的半径,可通过脚本中不同的属性值来对车辆进行控制。这些属性值有motortorque(马达转矩)、brakeTorque(制动转矩)和SteerAngle(转向角)。车轮碰撞体与物理引擎的真佘部分相比,是通过一个基于滑动摩擦力的参考体来单独计算摩擦力的。这会产生更真实的互动行为,但是车轮碰撞体就不受标准物理材质的影响了。
1、车轮碰撞体的没置
不需要通过调转或滚动带有车轮碰撞体的游戏对象来控制车辆,因为绑定了车轮碰撞体的游戏对象相对于汽车本身而言是固定的。然而若要调转或滚动车轮,最好的方法就是将车轮碰撞体和可见的车轮分开来设置。
2、碰撞体的几何结构
由于行驶的车辆具有一定的速度,因此创建合理的赛道碰撞集合体就显得尤为重要。特别是组成不可见模型的碰撞网格不应当出现小的凹凸不平现象。一般赛道的碰撞网格可以分开来制作,这样会使其更加平滑。
四、技巧
可通过在时间管理器中减少物理时间步长来使得汽车的物理系统更加稳定,尤其是针对高速的赛车而言,为了防止容易翻车的情况,可通过脚本降低刚体质量的中心点并应用下压力(该力取决于汽车的速度)。