基本使用方法可以参考官方中文文档WheelCollider。 下面补充一下我自己开发中用到的点和踩到的坑。
车子的滑动惯性: 加大 WheelCollider.wheelDampingRate
车子抓地力调整: Forward Friction-> Stiffness(纵向,车轮前进后退) Sideways Friction-> Stiffness(横向,漂移)
车子上坡下滑: 1.正向前(Z)上坡加大 WheelCollider.forwardFriction.asymptoteValue
, 倒车(-Z)上坡加大WheelCollider.forwardFriction.extremumValue
2.减小车身的mass,增加车轮的mass 3.再调节WheelCollider.forwardFriction.asymptoteSlip
注意WheelCollider
组件的车轮朝向是无法手动修改的,它的朝向与带有Rigidbody
组件的父物体方向保持一致。
容易翻车问题 目前想到的解决方案是看到不倒翁产生的灵感,可以把车身的刚体重心调低一些来减少容易翻车的情况。 修改重心的代码如下:
using UnityEngine;
public class ChangeCenterOfMass : MonoBehaviour
{
public Transform center;
private Rigidbody r;
void Start()
{
r = GetComponent();
}
void Update()
{
r.centerOfMass = center.localPosition;
}
}
在车的节点下创建一个空物体用来设置重心位置,注意赋值的是localPosition
。
自己做的demo截图 关于WheelCollider的相关博客