ecc*_*cco 0 c# syntax-error unity-game-engine
我正在构造变量,因此可以在Unity Inspector中编辑它们。我正在尝试在几个变量前使用[Space(15)],这些变量具有{get; 组; }。Visual Studio不会编译它。
我放置了一个没有{get; set;}在其他变量的前面,并且似乎可以编译,但这是一个非常丑陋的解决方案。Google对我的修复没有帮助。
这不起作用:
[Space(15)]
[SerializeField]
private bool baa { get; set; }
Run Code Online (Sandbox Code Playgroud)
这确实有效:
[Space(15)]
public int foo;
[SerializeField]
private bool baa { get; set; }
Run Code Online (Sandbox Code Playgroud)
它应该在没有额外变量的情况下进行编译以放入“;” 在代码中。编译器向我显示以下错误代码:CS0592。
您不能序列化属性。该SerializeField属性用于序列化field。同样的做法是Space,在标记之前在检查器中放置广告空间field。
Unity不直接支持检查器中属性的序列化。
一种解决方法(虽然有点混乱)是为要序列化的属性声明一个单独的字段。
[Space(15)]
[SerializeField]
private bool _baa;
private bool baa { get => _baa; set => _baa = value; }
Run Code Online (Sandbox Code Playgroud)