由于某种原因,这个if语句在运行时在Unity中创建了一个GameObject。
if (touchedTarget == true && Targeter[1] == new GameObject()) {
_destination = Targeter[1].transform;
}
脚本中没有任何其他内容可以创建对象。我认为这会将数组中的内容与新的GameObject进行比较,而我对发生的事情完全感到困惑。
使用新的GameObject():https://gyazo.com/6e7c5fe524d0425b4474b54cfe79ac19 没有:https://gyazo.com/6ed97637e2e2765f6ef4a976bfb6071a
有人可以解释为什么会这样做吗?
答案 0 :(得分:4)
if语句的第二个条件Targeter[1] == new GameObject()
,特别是它的右侧,每次运行时都会实例化一个新的GameObject
。
如果您只是想检查Targeter[1]
对象是否具有默认值,您可以考虑实施一种检查GameObject
字段的新方法,以确定字段是否与默认值匹配。< / p>