我正在为团结游戏创造一个基本的车轮4.6。我使用steerAngle
转向为我的车轮获得了eulerAngles.z
。但是有一个问题,每当我顺时针转动转向然后它给我的角度是360,359,358等等。我想要-1,-2,-3等东西。有没有办法实现这个目标?
BTW这是我到目前为止所做的:
float steerAngle = (steering.transform.eulerAngles.z);
frontLeftWheel.steerAngle = steerAngle;
frontRightwheel.steerAngle = steerAngle;
答案 0 :(得分:0)
你能创建一个扩展方法来实现这个吗?
frontLeftWheel.steerAngle = steerAngle.Adjusted();
...
public static class Extensions
{
private const float MAX_VAL = 360.0;
public static float AdjustedAngle(
this Vector3 eulerAngle, int idx = 2)
{
/* idx 0 = x
1 = y
2 = z */
//float axesVal = idx == 0
// ? eulerAngle.x
// : idx == 1 ? eulerAngle.y : eulerAngle.z;
/* need to differentiate between a valid 359,
and an invalid 359, which should be returned as
359 - 360 or -1 */
//var valid = <do some work>;
// return valid ? axesVal : axesVal - MAX_VAL;
}
}
答案 1 :(得分:0)
if (steerAngle > 180)
steerAngle -= 360;
答案 2 :(得分:0)
您可以检查角度是否小于180度返回相同的值,但是如果大于180度则应为-360。因此,现在您可以获得负值。
float steerAngle = (steering.transform.eulerAngles.z < 180f) ? steering.transform.eulerAngles.z : steering.transform.eulerAngles.z - 360;