WheelCollider模拟摩托

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

模拟摩托车使用2轮的时候摩托车容易侧翻,所以使用靠近的4轮来模拟摩托
预制如下:
在这里插入图片描述

摩托的侧翻会受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;
  }
发布了45 篇原创文章 · 获赞 8 · 访问量 2万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览