【发布时间】:2020-05-19 12:15:46
【问题描述】:
在我的脚本的开头我有这行:
Color[] oldColor;
后来我想用元素填充它,所以在我写的一个函数中:
for (int i = 0; i < targets.Length; i++)
oldColor[i] = targets[i].color;
但是,第一行带有绿色下划线,它表示我不能分配一个值,除非它的默认值(即为空)。 当我在 Unity 中运行它时,for 循环下面的行(它应该将值从一个数组复制到另一个数组)给了我 NullReferenceException。
“目标”定义为
SpriteRenderer[] targets;
它的所有元素都是通过 Inspector 分配的。
我不明白会发生什么。为什么不分配变量?
【问题讨论】:
-
如果你像这样初始化 oldColor 会怎样 -
Color[] oldColor = new Color[targets.Length];当我把你的代码放在 LINQPad 中时我得到的错误是Use of unassigned local variable 'oldColor'你需要先初始化它才能使用它。