使用Mathf.Clamp会导致对象从最低限制开始

时间:2015-07-11 10:40:45

标签: c# unity3d

我正在使用mathf.clamp来确保我的物体向上飞行保持在+/- 45度之内。我这样做:

x = Input.acceleration.x;
rotationZ -= x * sensitivityZ;
rotationZ = Mathf.Clamp (rotationZ, 45f, 120f);
transform.eulerAngles = new Vector3 (transform.eulerAngles.x, transform.eulerAngles.y, rotationZ);

我的物体以90度角开始,直线上升。当我运行此代码时,它首先强制我的对象达到下限,45。我希望它保持在中心位置。我通过创建一个名为addFF的变量来实现这一点,当它第一次启动脚本时,给它一个45的值。然后我将addFF添加到第一个值,然后将它设置为0,就像这样。

public float addFF = 45;  

void launch(){
x = Input.acceleration.x;
rotationZ -= x * sensitivityZ;
rotationZ = Mathf.Clamp (rotationZ, 45f + addFF, 120f);
addFF = 0;
transform.eulerAngles = new Vector3 (transform.eulerAngles.x, transform.eulerAngles.y, rotationZ); 
}

因此,这会将变量添加到总计第一次运行时为90。然后当它再次运行时,它被设置为0,所以它将它设置回45.这样做我想要它,保持对象面向90度,当我开始但是有更清洁的方式这样做吗?

0 个答案:

没有答案