if语句创建不需要的对象

时间:2018-03-30 16:25:27

标签: c# unity3d

由于某种原因,这个if语句在运行时在Unity中创建了一个GameObject。

if (touchedTarget == true && Targeter[1] == new GameObject()) {
    _destination = Targeter[1].transform;
}

脚本中没有任何其他内容可以创建对象。我认为这会将数组中的内容与新的GameObject进行比较,而我对发生的事情完全感到困惑。

使用新的GameObject():https://gyazo.com/6e7c5fe524d0425b4474b54cfe79ac19 没有:https://gyazo.com/6ed97637e2e2765f6ef4a976bfb6071a

有人可以解释为什么会这样做吗?

1 个答案:

答案 0 :(得分:4)

if语句的第二个条件Targeter[1] == new GameObject(),特别是它的右侧,每次运行时都会实例化一个新的GameObject

如果您只是想检查Targeter[1]对象是否具有默认值,您可以考虑实施一种检查GameObject字段的新方法,以确定字段是否与默认值匹配。< / p>