unity-game-engine - 当代码中的值发生更改时,检查器不更新

标签 unity-game-engine

我与检查员之间发生了麻烦,我不确定我做了什么。在此问题之前,当我更新脚本中的变量时,它会在保存代码时在检查器中显示新值。由于某种原因,这种情况突然停止了。我不知道我对检查器或代码所做的任何更改会导致此问题。是否有某种设置来调整此功能?我一直在使用默认的 Unity 安装并在 Visual Studio 中执行 C#。我在网上看到了其他类似的问题,但没有完全符合我遇到的问题的答案。

这是一个具有两个不同值的示例变量。基本上,我在 C# 代码中将其初始化为 2f 值。然后,后来我用值 3f 更新了相同的 C# 代码并保存。通常,检查器会更新以反射(reflect)这个新值,但现在不再这样做。

Variable in Code

Variable in Inspector

最佳答案

这是因为检查器中的字段是 serialized并始终被场景或预制 Assets 中存储的序列化值覆盖。

因此,稍后对默认值的代码进行更改不会产生任何影响。

所以我怀疑它以前做过。

唯一确实会改变它,例如如果您重命名该字段,则为。


正如已经提到的by Yash Vakil您可以通过组件的上下文菜单重置整个组件及其所有字段。


但据我所知,您也可以通过直接右键单击字段并从此上下文菜单中单击重置来重置各个字段。但并不是 100% 确定。


有点肮脏的黑客行为是进行一次编译,其中该值不再序列化。

例如通过制作它

[NonSerialized] public float jorneyTime = 3f;

让它编译一次,然后通过再次删除[NonSerialized]将其更改回来。这迫使 Unity 完全失去该字段的序列化。

关于unity-game-engine - 当代码中的值发生更改时,检查器不更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63822938/

相关文章:

user-interface - Unity 4.6 - 如何将 GUI 元素缩放到适合每种分辨率的正确尺寸

c# - 在 Unity 中创建 2D 圆形网格

c# - UnityWebRequest 返回 "\u001f�\b"

sdk - unity插件和dll文件有什么区别?

android - Firebase 模块初始化失败 : remote_config (missing dependency)

.net - unity3d可以与socket.io一起使用吗?

php - Unity + PHP + SSL + Https + 黑客

ios - 我想为 iOS 制作一个交互式的 3D map 。我应该使用什么软件?

unity-game-engine - Shader ZTest 未按预期运行

android - Multiple Errors Unity (SDK APP Building) (on Mac) 信息见图片