我注意到gdscript中有一些奇怪的行为。
当您声明变量时
var value = [0, 0, 0, 0, 0]
var values = []并将一个附加到另一个
values.append(value)然后更改数组中的某些内容
value[1] = 1如果要打印结果,请打印(值,值)
你会得到
prints: [0, 1, 0, 0, 0][[0, 1, 0, 0, 0]]预期行为
prints: [0, 1, 0, 0, 0][[0, 0, 0, 0, 0]]发布于 2021-01-05 22:09:24
在GDScript中,当您将数组value追加到values中时,实际上是将其引用追加到数组中。因此,您最终得到了一个数组values,它的第一个条目是对数组value的引用。因此,当您在values中更改引用的值时,您也会更改原始变量的值。
要进一步阅读,请查看此wikipedia page
https://stackoverflow.com/questions/65394208
复制相似问题