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