我认为实现这两行变量效率很低。
[SerializeField] private int i;
public int I => i;
所以我想用一行来表达这一点,但这在Unity中没有序列化。
[SerializeField] public int I { get; private set; }
我想让它在 Unity Inspector 中可见。
所以我的问题如下。
- 该属性可以序列化吗?
- 如果不可能,是否可以通过上述以外的方式解决?
最佳答案
从 C# 7.3(Unity 支持)开始,您现在可以向自动属性生成的支持字段添加属性。
对于此实例,支持字段是自动生成的,您可以添加此属性:
[field: SerializeField] public int MyField { get; private set; }
这会序列化支持字段,就像它是一个普通变量一样。
关于c# - 我如何在Unity中序列化c#的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74805372/