C# 无法在Unity中更改Inspector变量中的数组大小?
从我所读到的内容来看,向量“大小”是如何设置的 但是当代码运行时,它看起来是这样的 我给[4]放的数字似乎并不重要,大小总是保持在6。我甚至不知道6号是从哪里来的,因为我没有设置任何数字 我甚至试过C# 无法在Unity中更改Inspector变量中的数组大小?,c#,arrays,unity3d,C#,Arrays,Unity3d,从我所读到的内容来看,向量“大小”是如何设置的 但是当代码运行时,它看起来是这样的 我给[4]放的数字似乎并不重要,大小总是保持在6。我甚至不知道6号是从哪里来的,因为我没有设置任何数字 我甚至试过 public Color[] teamAColors; 然后让我的数组自动填充长度,但这也不会改变6。这很简单 public Color[] teamAColors; 但是“不会消失”的“6”值呢 但是你在UNITY中偶然发现了“重置”GOTCHYA 只需尝试使用不同的变量名 publi
public Color[] teamAColors;
然后让我的数组自动填充长度,但这也不会改变6。这很简单
public Color[] teamAColors;
但是“不会消失”的“6”值呢
但是你在UNITY中偶然发现了“重置”GOTCHYA
只需尝试使用不同的变量名
public Color[] teste;
看到了吗
就在那里,工作很好。您可以动态设置大小,只要从不将大小放入代码中
以下是秘密:
Unity“以复杂的方式保留”序列化值。
如果您在代码中设置了一次大小,Unity将“记住”这一点,即使您随后更改了代码
有一种方法可以重置此“内部”值。。查找著名的微型重置按钮
它附着在微小的齿轮符号上
要记住的关键规则是:
永远不要在UNITY中的公共变量代码中使用默认值!!
当你这么做的时候,这里有一个非常方便的窍门。试试这个
[Header("How good is this?")]
public float x;
这里有一个更酷的!试试看
[Range(2f,4f)]
public float x;
尝试从部件上的齿轮按钮点击“重置”。 它将重置所有已填充的条目,但应删除缓存的大小
我希望这有帮助 谢谢!成功了。啊,嘿!关于这一点的微妙之处,这里有一个很好的长篇大论的解释。请注意,还提到了
[System.NonSerialized]public
,这一点在您继续Cheerralert@TimCooley的过程中非常重要。我用更多精彩的信息包装了答案,请务必重新加载。查看结尾的技巧//通常不要这样做。。我会一直这样做。。。我更喜欢将我的值默认为有用的值,而不是总是0
。。。有些情况下,您不想使用Range
,但仍然允许用户(开发人员)甚至将其设置为0
,但无论如何都要给它一个适当的默认值value@derHugo当然,如果你是专家,可以避免“重置gotchya”,你可以随心所欲!这里,建议初学者避免“重置gotchya”。@TimCooley我很高兴能帮上忙。你介意选择我的回答作为答案吗?谢谢,祝你好运!
[Header("How good is this?")]
public float x;
[Range(2f,4f)]
public float x;