等式运算符在 Unity 和 C# 中不起作用

问题描述 投票:0回答:0

我刚刚为我的商店系统写了一些代码,但一条非常简单的代码行不通:

...
if (dir == "left" && rect.anchoredPosition.x != -217.5f) {...}
... 

如果锚定 position.x 为 -217.5{} 中的代码仍会运行。但是下面有几行是这样的:

...
else if(rect.anchoredPosition.x != 217.5f)
...

效果很好!

后来我把第一行改成:

if (dir == "left")
{
   if (rect.anchoredPosition.x != -217.5f)
     {
         ...
     }
}
...

效果很好,正如预期的那样。

我检查了几次固定位置,所以这不是它的错。我知道 dir 是“左”所以一个是真的,但是锚定的是 -217.5 所以它应该返回 false.

我不知道它为什么这样做。最后没关系,因为两个 if 语句 分开它有效,但我仍然想了解为什么。

谢谢

c# unity3d
© www.soinside.com 2019 - 2024. All rights reserved.