c# - 我如何在Unity中序列化c#的属性

标签 c# unity-game-engine serialization properties

我认为实现这两行变量效率很低。

[SerializeField] private int i;
public int I => i;

所以我想用一行来表达这一点,但这在Unity中没有序列化。

[SerializeField] public int I { get; private set; }

我想让它在 Unity Inspector 中可见。

所以我的问题如下。

  1. 该属性可以序列化吗?
  2. 如果不可能,是否可以通过上述以外的方式解决?

最佳答案

从 C# 7.3(Unity 支持)开始,您现在可以向自动属性生成的支持字段添加属性。

对于此实例,支持字段是自动生成的,您可以添加此属性:

[field: SerializeField] public int MyField { get; private set; }

这会序列化支持字段,就像它是一个普通变量一样。

关于c# - 我如何在Unity中序列化c#的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74805372/

相关文章:

c# - Unity Raycast() 和 DrawRay() 使用相同的输入创建不同的光线

unity-game-engine - Unity 5 - 切换场景时场景变暗

ios - 在UnityPro4.6.0f3、Xcode5.0.2(5A3005)和IOS 8.1.1中构建TutorialHelloWorld时出现链接错误

java - 为什么要考虑方法名称或为 serialversionuid 生成哈希

java - 如何序列化一个包含 ObservableList 的对象?

java - 反序列化时抛出 ClassNotFoundException

C# 方法重载解析和用户定义的隐式转换

C# - 无法从不同的类访问公共(public)函数

c# - 如何将 c# 时区 id 转换为 python 可接受的 id?

C# - 以编程方式打开和关闭 excel 文件的正确方法