多个更新脚本,不使用多个对象

时间:2015-08-14 13:44:40

标签: c#

目前我有8个对象,每个对象都有自己的更新脚本。我正在尝试做的是让每个对象显示它位于bools的正确位置。如果它离开正确的位置,则bool会返回false

对于前两个对象,脚本运行良好。 第一个脚本是

p1, with x = -2.5, and y = -2.5.

第二个对象是

p2, with x = 0, and y = -2.5.

当他们离开这些职位时,bool更改为false,没有任何问题。

然后当我到达第3个对象时,

p3, with x=-2.5 and y=0

但它显示true -2.5 x的{​​{1}},-2.5 yfalse。任何帮助将不胜感激。

void Update(){
    if(transform.position.x <= -2.5 && transform.position.y <= -2.5) {
    p1 = true;
    } else {
      p1 = false;
      }
}

1 个答案:

答案 0 :(得分:1)

看看你写的条件:你正在测试&lt; = -2.5。根据定义,-2.5小于或等于-2.5(在这种情况下相等),因此它将属于真实情况。如果你想-2.5是假的改变它&lt; (小于)而不是&lt; =(小于或等于)。

<强>更新

你发表评论我怀疑你对p3的测试是针对x&lt; = -2.5而y&lt; = 0 如果y从0变为-2.5,则第二个条件仍然为真,因为-2.5&lt; = 0.如果您只想测试一个正确的位置,则必须测试!=(不等)该数字,但这可能会导致其他问题取决于您使用的数据类型。例如。对于double,你可能需要测试Math.Abs​​(-2.5-y)&lt; 2d * Double.Epsilon

有关该特定外观的更多信息e.g. here and here.