我正在使用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度,当我开始但是有更清洁的方式这样做吗?