无法在Unity中的Inspector变量中更改数组大小?
据我所知,这是如何设置矢量“大小”
public Color[] teamAColors = new Color[4];
但是当代码运行时,它看起来像这样
我为[4]添加的数字似乎并不重要,大小始终保持为6.我不确定6号码来自哪里,因为我没有设置任何数字。
我甚至试过
public Color[] teamAColors;
然后让我的数组自动填充长度,但这也不会改变6。
这很简单
public Color[] teamAColors;
但那“不会消失”的那个“6”值呢?
但你已经陷入了“重置”GOTCHYA的统一!
只需使用不同的变量名称即可 …
public Color[] teste;
看到?
在那里,工作正常。 您可以动态设置大小,只要您从未在代码中放置大小即可 。
这是秘密:
Unity以复杂的方式“坚持”序列化值。
如果您在代码中设置大小甚至一次,即使您随后更改了代码,Unity也会“记住”这个。
有一种方法可以重置这个“内部”值..寻找着名的微小重置按钮 。
它附在微小的Cog符号上。
要记住的关键规则是:
从来没有,在UNITY公共变量的代码中有一个默认的价值!!
public float x; // do this public float x=2f; // generally NEVER DO THIS
当你在这里时,这是一个非常方便的技巧。 试试这个 …
[Header("How good is this?")] public float x;
这是一个更酷的! 试试吧!
[Range(2f,4f)] public float x;
尝试从组件上的齿轮按钮点击“重置”。 它将重置所有已填充的条目,但应删除缓存的大小。
我希望有所帮助!