【发布时间】:2021-07-16 02:10:06
【问题描述】:
我已经寻找了几个小时的答案,但我找不到解决方案。我有一个脚本可以在汽车转弯时旋转方向盘。它的最大旋转为 120,最小旋转为 -120。我一直在尝试使用 RotateTowards 和其他四元数方法进行旋转,但我无法弄清楚它们。转角不为零,不按转键(a、d),以一定的速度回到原来的0、0、0旋转怎么办?
这是我的方向盘脚本:
if (horizontalInput > 0)
{
wheel.transform.Rotate(Vector3.forward*Time.deltaTime*wheelspeed);
rotations -= wheelspeed;
}
else if (horizontalInput < 0)
{
wheel.transform.Rotate(-Vector3.forward * Time.deltaTime * wheelspeed);
rotations += wheelspeed;
}
这是我的(非常糟糕的)方向盘最小和最大旋转的脚本:
angle += Input.GetAxis("Horizontal") * Time.deltaTime*10;
angle = Mathf.Clamp(-120, angle, 120);
wheel.transform.localRotation = Quaternion.AngleAxis(angle, Vector3.forward);
angle += Input.GetAxis("Horizontal") * Time.deltaTime * 400;
angle = Mathf.Clamp(120, 0, angle);
wheel.transform.localRotation = Quaternion.AngleAxis(angle, Vector3.forward);
【问题讨论】:
标签: c# unity3d rotation z-axis