赞
踩
Mass
刚体的质量,在汽车上表示汽车的质量
Drag
根据力移动对象时影响对象的空气阻力大小。0 表示没有空气阻力,无穷大使对象立即停止移动
Angular Drag
根据扭矩旋转对象时影响对象的空气阻力大小。0 表示没有空气阻力
centerOfMass
质量重心,会自动根据附加到刚体上的碰撞器自动计算,建议设置到前座附近
用于地面交通工具的特殊碰撞体,内置了碰撞检测、车轮物理组件和基于打滑的轮胎摩擦模型。
Mass
车轮质量,必须大于0,典型值20-80,可以根据汽车的实际情况增大或减小
Radius
车轮的半径,根据实际的车轮模型大小进行调整,本地空间中测量
wheelDampingRate
车轮的阻尼率。必须大于零。
Suspension Distance
车轮悬架离车身的最大延伸距离,可以理解为车轮在行进过程中车轮离开正常位置的最大距离
Force App Point Distance
从静止车轮的底部到车轮受力点的距离。默认值为 0,表示在静止车轮的底部施加力,但明智的做法是将此点定位在略低于汽车质心的位置。
模拟悬架几何形状的实际侧倾中心,向下移动作用点会在转弯时引入更多侧倾,向上移动作用点则会减少转弯时的侧倾。
最好不要将该参数设置为零,因为这会导致模拟在某些配置下不稳定。如果您观察到车辆在平坦表面上无法进入“睡眠”状态(表现出抖动行为或在无用户输入时沿表面漂移)
Center
车轮在对象局部空间中的中心位置
suspensionSpring
spring
描述弹簧的刚度。其单位为牛顿米,改变车辆响应道路颠簸所需的时间以及轮胎承受的载荷量,从而影响操作体验。
较大的值,会使悬架更快的达到目标位置,增加操作的可变性,使车不稳
较小的值,可以提供更平稳、响应更迟钝的驾驶体验
damper
弹簧消散其储能的速率
较大的值会使悬架更慢地到达目标位置
较小的值会使汽车看起来更有弹性
targetPosition
描述车轮的目标位置(静止情况下的位置),在汽车行驶过程中,发生颠簸时,车轮都会向这个位置靠近
取值为0-1,0表示完全伸展的悬架,1表示完全压缩的悬架
Forward/Sideways Friction
模拟车轮向前的摩擦曲线
在这两个方向上,首先确定轮胎打滑的程度(基于轮胎橡胶和道路之间的速度差异)。然后,将该打滑值用于计算施加在接触点上的轮胎力
曲线以轮胎打滑的度量值作为输入,并以力作为输出。曲线由包含两部分的样条图近似模拟。第一部分从 (0 , 0) 到 (ExtremumSlip , ExtremumValue),目标点处曲线的正切值为零。第二部分从 (ExtremumSlip , ExtremumValue) 到 (AsymptoteSlip , AsymptoteValue),目标点处曲线的正切值再次为零:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-awlmbiyh-1619582446461)(WheelFrictionCurve.png)]
根据真实轮胎的特性,在低打滑条件下,轮胎可能会施加很大的力,因为橡胶会通过拉伸来补偿打滑。随后,当打滑变得非常高时,随着轮胎开始滑动或旋转,力会减小。因此,轮胎摩擦曲线的形状与上图相似
*属性:* | *功能:* |
---|---|
Extremum Slip/Value | 曲线的极值点。 |
Asymptote Slip/Value | 曲线的渐近点。 |
Stiffness | Extremum Value 和 Asymptote Value 的乘数(默认值为 1)。改变摩擦力的刚度。将此值设置为零将完全禁用车轮的所有摩擦力。通常在运行时修改刚度以使用脚本来模拟各种地面材质。 |
brakeTorque
制动扭矩,以牛顿米表示。用于刹车时设置,一般只给后轮设置制动扭矩
motorTorque
轮轴上的电机扭矩(以牛顿米表示)。根据方向,可以为正值或负值,前进后后退
steerAngle
车轮转向角度(以度为单位),始终围绕本地 Y 轴。用与左转右转
sprungMass
WheelCollider 支撑的质量。车辆模拟使用簧载质量模型 - 它将所有车轮支撑的汽车的全部质量一次分解为由每个车轮支撑的一组簧载质量。然后,计算每个车轮-质量对的所有悬架和轮胎力,最后整合施加到车身的所有力。在最简单的情况下,对于具有四个车轮的完全对称的车辆,所有簧载质量将等于汽车质量的四分之一。该属性根据车辆配置自动进行计算。
设置WheelCollider参数的注意事项
在汽车对象下创建两个子对象,一个表示Camera的位置,另一个则表示Camera的lookAt位置
以下是根据官方脚本给出的基本功能模拟的解释
驱动方式
将汽车的最大motorTorque平均分配每个车轮
即:每个车轮的motorTorque = 最大motorTorque / 车轮数
四驱
给汽车的四个WheelCollider都设置motorTorque
前驱
给汽车的前轮WheelCollider都设置motorTorque
后驱
给汽车的后轮WheelCollider都设置motorTorque
刹车
手刹
给汽车的后轮设置适当的brakeTorque,需要注意在汽车重新需要前进时,将此值设置为0
前进
给汽车的相应轮胎设置大于0的motorTorque,根据驱动方式中的公式算出
当车速大于5英里每小时并且车身速度和车身前进方向夹角小于50度时,会给每个WheelCollider设置brakeTorque属性,达到减速的效果
后退
给汽车的相应轮胎设置小于0的motorTorque
为模拟真实情况,后退的动力需要使用单独的motorTorque来控制,而不是直接用汽车的最大motorTorque/车轮数
最大速度的限制
比较车身Rigidbody.velocity和最大速度的值,将其限制在最大速度值以下
转向
基本功能:给前轮的WheelCollider设置steerAngle(0-maxSteerAngle)
对速度和车身的控制:
假如上一次车体Y方向角度比这次小于十度,就根据相差的度数乘以给系数SteerHelper,得出需要旋转的度数,根据这个度数算出四元数,然后将刚体速度直接旋转这个偏移度数。这个做法相当于做了一个角度辅助,不完全凭借WheelCollider物理效果,而直接操控速度方向,对车角度进行调整。
效果:如果m_SteerHelper为0,车转角度时就很死,如果为1,车转角度就特别灵活
牵引力控制模拟
启动牵引力:给定一个系数TractionControl,范围为0-1,1表示汽车开始的扭矩力为0,0表示汽车一开始的扭矩力为最大值
有输入时每次增加的牵引力:10*TractionControl
根据滚动方向轮胎打滑程度,如果超过限制,则减小牵引力
档位模拟
抓地力的模拟
根据速度直接增加一个向下的力
声音
特效
待补充
WheelCollider:https://docs.unity.cn/cn/current/ScriptReference/WheelCollider.html
车轮碰撞体教程:https://docs.unity.cn/cn/2018.4/Manual/WheelColliderTutorial.html
CarController的详解:https://blog.csdn.net/narutojzm1/article/details/51374198/
调试实例:https://blog.csdn.net/Gao_sun/article/details/108267478?spm=1001.2014.3001.5501
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。