2015-04-06 109 views
0

我正在为团队中的我的游戏创建一个基本的汽车轮毂4.6。我得到steerAngle我的车轮使用eulerAngles.z转向。但是有一个问题,只要我顺时针转动转向角然后角度就是360,359,358等&我想要-1,-2,-3等东西。有什么办法可以做到这一点?Unity中的负欧拉角球

BTW这是我到目前为止已经完成:

float steerAngle = (steering.transform.eulerAngles.z); 
    frontLeftWheel.steerAngle = steerAngle; 
    frontRightwheel.steerAngle = steerAngle; 

回答

0
if (steerAngle > 180) 
    steerAngle -= 360; 
+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; 
    } 
}