在搜索此问题时,我已经看到很多人都遇到了同样的问题,但是我找不到很好的解决方案,甚至无法解释为什么会发生这种情况。
过去,当在VScode中更新公共变量,然后保存并切换回Unity时,该变量将在检查器中自动更新。现在,对代码的其他更改会自动编译(例如,如果我添加Debug.Log语句),但是我在代码中明确设置的变量不会导入Unity;旧变量仍将使用。重置组件将正确更新值,关闭/重新打开Unity也会正确。
在我的首选项中设置了“自动刷新”,并且我已经卸载/重新安装了Unity和VScode。我什至完全删除了它们,然后重新下载,但仍然遇到相同的问题。
有人知道导致此问题的原因或如何解决此问题吗?
先谢谢了。
答案 0 :(得分:2)
当您将某物标记为公共或具有属性[SerializeField]时,它将被序列化,并且将具有此值,直到您在检查器中对其进行更改为止。序列化变量的目的是在检查器而不是代码中调整其值。如果您仍想将组件设置为默认脚本值,则可以单击组件上的齿轮,然后将其重置。