WheelCollider部分可以看回之前的纹章 WheelCollider笔记

模拟摩托车使用2轮的时候摩托车容易侧翻,所以使用靠近的4轮来模拟摩托
预制如下:
WheelCollider模拟摩托

摩托的侧翻会受WheelCollider 影响,WheelCollider越靠近越明显
同步轮子时候,摩托车头也跟随前轮的Y轴偏转。前后轮去前后的wheelCollider中间位置进行定位
可以大致模拟出一个摩托


轮子跟随的部分代码:


  protected override void ModelFollowCollider()
  {

    //wheel x rotate with Wheel Collider
    for (int i = 0; i < wheelColliders.Length / 2; i++)
    {
      Vector3 leftPos;
      Vector3 rightPos;
      Quaternion leftQuat;
      Quaternion rightQuat;

      wheelColliders[i * 2].GetWorldPose(out leftPos, out leftQuat);
      wheelColliders[i * 2 + 1].GetWorldPose(out rightPos, out rightQuat);

      Vector3 euler = wheelTransform[i].transform.localEulerAngles;
      euler.x = (leftQuat.eulerAngles.x + rightQuat.eulerAngles.x) / 2;
      wheelTransform[i].transform.localEulerAngles = euler;
    }

    Vector3 carEuler = this.transform.eulerAngles;
    float yCarAngle = carEuler.y;
    float motoSideMax = 45;
    if (yCarAngle > motoSideMax) yCarAngle = motoSideMax;
    if (yCarAngle < -motoSideMax) yCarAngle = -motoSideMax;

    Vector3 headEuler = motoHead.transform.localEulerAngles;
    headEuler.y = yCarAngle;
    motoHead.transform.localEulerAngles = headEuler;
  }

相关文章:

  • 2021-05-19
  • 2021-12-19
  • 2022-12-23
  • 2022-02-13
  • 2021-09-19
  • 2021-05-02
  • 2022-01-28
  • 2021-06-05
猜你喜欢
  • 2021-08-29
  • 2021-04-13
  • 2022-12-23
  • 2022-12-23
  • 2021-11-27
  • 2022-12-23
  • 2021-10-13
相关资源
相似解决方案