我对 Unity 很陌生,所以这可能是一个愚蠢的问题,但是在检查器中设置值是否与在代码中设置默认值相同?
例子:
public string name; //then go to inspector and set it as "Bob".
或者
public string name = "Bob";
那么,换个说法,上面的这些 Action 会达到同样的效果吗?
最佳答案
是的 ,它们都将完成相同的事情。单击“播放”按钮后,它们都将使用“Bob”值初始化 name
变量。
如果您将字段变量设为 public
,强烈建议您 不要从代码中设置默认值 。这样做的原因是你会遇到一个需要你花时间去发现和修复的错误。
例如,假设你有这个:
public string name = "Bob";
然后你去编辑器让它编译。稍后,您返回代码并将其更改为“Jake”:
public string name = "Jake";
在编程时,您仍然会认为值现在是“Jake”,并期望您的代码基于“Jake”值做一些事情。这将失败,因为
name
仍然是“Bob”。 name 变量的最新值显示在编辑器中,直到 name
变量重命名或包含 name
变量的脚本/组件被重置:这是一个浪费时间的问题,是的,有些人仍在经历它。如果您想创建变量
public
但不想从编辑器分配它,请使用 [HideInInspector]
属性将其隐藏。[HideInInspector]
public string name = "Bob";
这将确保您不会在编辑器中错误地更改它并导致问题,同时允许从其他脚本访问您的变量。
这仅适用于声明变量的地方。您可以稍后更改函数或属性中的变量,更改应该会生效而不会出现任何问题。
关于c# - 在检查器中设置值是否与在 Unity 中设置默认值相同?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51558068/