https://forum.unity.com/threads/wheel-colliders-wrong-rotation.833047
用户问题:为什么WheelCollider在Editor里无法被旋转,通过在WheelCollider的GameObject上增加一个Rigidbody就可以旋转了
https://docs.unity3d.com/Manual/wheel-colliders-introduction.html
This raycast configuration means that a Wheel collider does not actually roll across other surfaces (such as the ground) while moving.
文档里写明WheelCollider实际上是不会rolling,也包括不会进行任何别的旋转。
涉及到源代码,简单来说就是WheelCollider的旋转方向是固定的,SteerAngle是对Y轴的旋转,Rolling是对X轴的旋转,且这两个变量都是从PhysXSDK直接得到,Unity没有控制的权限。车辆行驶方向是根据WheelCollider最近的rigidbody的Z轴方向来定的。所以如果正常在车体上加Rigidbody,车体的local.z就是行驶方向。如果在WheelCollider上加RigidBody那么旋转方向自然根据这个Rigidbody来。
steerAngle
接下来继续研究了一下其他的设置变量,最让我疑惑的就是这个摩擦力曲线。
WheelCollider可以设置轮胎的摩擦力,但是并不是直接设置,而是通过下面一系列参数
而参数对应的就是摩擦力曲线图的Extremum这一点(x=Extremum Slip, y=Extremum value)和Asymptote这一点。也就是说通过设置四个参数,可以定义一个Force随着Slip变化的函数,函数大致的曲线图就是上面的摩擦力曲线图。
好了,接下来就是研究到底什么是这个slip和force。
Force应该是摩擦力,在Slip比较小的时候摩擦力为0,但是当滑动增大摩擦力也增大,滑动增大到一个临界点,后摩擦力开始变小,然后直到达到平衡,也就是渐近线(Asymptote)点。
那么这个Slip到底是滑动时候的力,还是距离,还是时间呢,还是速度呢?
文章评论