gpt4 book ai didi

c# - 在检查器中设置值是否与在 Unity 中设置默认值相同?

转载 作者:行者123 更新时间:2023-12-04 00:38:00 27 4
gpt4 key购买 nike

我对 Unity 很陌生,所以这可能是一个愚蠢的问题,但是在检查器中设置值是否与在代码中设置默认值相同?

例子:

public string name; //then go to inspector and set it as "Bob".

或者
public string name = "Bob";

那么,换个说法,上面的这些 Action 会达到同样的效果吗?

最佳答案

will these actions above achieve the same effect?



,他们都会完成同样的事情。他们都将初始化 name单击“播放”按钮后,带有“Bob”值的变量。

强烈建议您 不要如果您将字段变量设为 public,则从代码中设置默认值.这样做的原因是你会遇到一个需要你花时间去发现和修复的错误。

例如,假设你有这个:
public string name = "Bob";

然后你去编辑器让它编译。稍后,您返回到代码并将其更改为“Jake”:
public string name = "Jake";

在编程时,您仍然会认为值现在是“Jake”,并期望您的代码基于“Jake”值做一些事情。这将失败,因为 name仍然是“鲍勃”。 name 变量的最新值显示在编辑器中,直到 name重命名的变量或保存 name 的脚本/组件变量被重置:

enter image description here

这是一个浪费时间的问题,是的,有些人仍在经历它。如果要使变量 public但不想从编辑器分配它,使用 [HideInInspector] 属性来隐藏它。
[HideInInspector]
public string name = "Bob";

这将确保您不会在编辑器中错误地更改它并导致问题,同时允许从其他脚本访问您的变量。

这仅适用于声明变量的地方。您可以稍后更改函数或属性中的变量,更改应该会生效而不会出现任何问题。

关于c# - 在检查器中设置值是否与在 Unity 中设置默认值相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51558068/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com