我与检查员之间发生了麻烦,我不确定我做了什么。在此问题之前,当我更新脚本中的变量时,它会在保存代码时在检查器中显示新值。由于某种原因,这种情况突然停止了。我不知道我对检查器或代码所做的任何更改会导致此问题。是否有某种设置来调整此功能?我一直在使用默认的 Unity 安装并在 Visual Studio 中执行 C#。我在网上看到了其他类似的问题,但没有完全符合我遇到的问题的答案。
这是一个具有两个不同值的示例变量。基本上,我在 C# 代码中将其初始化为 2f 值。然后,后来我用值 3f 更新了相同的 C# 代码并保存。通常,检查器会更新以反射(reflect)这个新值,但现在不再这样做。
最佳答案
这是因为检查器中的字段是 serialized并始终被场景或预制 Assets 中存储的序列化值覆盖。
因此,稍后对默认值的代码进行更改不会产生任何影响。
所以我怀疑它以前做过。
唯一确实会改变它,例如如果您重命名该字段,则为。
正如已经提到的by Yash Vakil您可以通过组件的上下文菜单重置
整个组件及其所有字段。
但据我所知,您也可以通过直接右键单击字段并从此上下文菜单中单击重置
来重置各个字段。但并不是 100% 确定。
有点肮脏的黑客行为是进行一次编译,其中该值不再序列化。
例如通过制作它
[NonSerialized] public float jorneyTime = 3f;
让它编译一次,然后通过再次删除[NonSerialized]
将其更改回来。这迫使 Unity 完全失去该字段的序列化。
关于unity-game-engine - 当代码中的值发生更改时,检查器不更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63822938/