【发布时间】:2018-10-21 16:24:12
【问题描述】:
我的脚本运行得几乎完美,但我只需要钳制这个浮点数,我似乎不知道怎么做。
简化版...
public HingeJoint doorHinge;
public float rotatedoor = 0.0f; // Limit this value, min 0 max 120
void Update () {
float h = Input.GetAxis("Mouse X");
rotatedoor = rotatedoor + h;
JointSpring doorSpring = Door.spring;
doorSpring.targetPosition = rotatedoor;
Door.spring = doorSpring;
}
我尝试添加一个最小和最大浮点值,然后使用
rotatedoor = Mathf.Clamp(rotatedoor, minRot, maxRot);
但没有运气。
感谢任何帮助。
【问题讨论】:
-
试试这个:
Math.Max(0, Math.Min(120, rotatedoor)) -
他正在使用 Unity3D 并尝试使用 Mathf.Clamp() 方法来强制执行限制。 @Chris,您在使用 Mathf.Clamp() 时会得到什么结果?这实际上应该是正确的方法,除非有其他因素影响
rotatedoor变量的值。 -
它反而停在 33 处,然后再试一次后它上升了一点,但不会回落.. 不知道为什么。三元表达式起作用了。