我正在构造变量,因此可以在Unity Inspector中编辑它们。我试图在几个变量前使用[Space(15)],这些变量具有{get;组; }。 Visual Studio不会编译它。
我放置了一个没有{get; set;}在其他变量之前,并且似乎可以编译,但这是一个非常丑陋的解决方案。 Google对我的修复没有帮助。
这不起作用:
[Space(15)]
[SerializeField]
private bool baa { get; set; }
这确实有效:
[Space(15)]
public int foo;
[SerializeField]
private bool baa { get; set; }
它应该在没有额外变量的情况下进行编译以放入“;”在代码中。编译器向我显示以下错误代码:CS0592。
最佳答案
您不能序列化属性。 SerializeField
属性用于序列化field
。 Space
也是如此,它会在检查器中广告空间,然后在标记的field
之前。
Unity不直接支持检查器中属性的序列化。
一种解决方法(虽然有点困惑)是为要序列化的属性声明一个单独的字段。
[Space(15)]
[SerializeField]
private bool _baa;
private bool baa { get => _baa; set => _baa = value; }
关于c# - 为什么不能在带有内联{get;的变量前使用[Space(15)]组; }?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57691991/