c# - 为什么不能在带有内联{get;的变量前使用[Space(15)]组; }?

标签 c# unity3d syntax-error

我正在构造变量,因此可以在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属性用于序列化fieldSpace也是如此,它会在检查器中广告空间,然后在标记的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/

相关文章:

c# - 统一场景之间的自动淡入淡出不适用于 OSX

ios - 为什么Xcode没有ios框架选项?

ruby - Ruby语法错误,输入意外终止,应使用keyword_end

sql - 查询在SQL Server 2008中返回多个错误

c# - 在 C# 窗体应用程序中访问程序集信息 GUID

c# - 我什么时候取消订阅自定义控件中的事件

c# - 在 InputField 中检测复制和粘贴

python - 测试非整数(小数和字符串)

c# - 在 C# WinForms 应用程序中显示 Flash 内容

c# - 如何打印全尺寸 A4 页面?