Protobuf-net和Unity3D类型

时间:2014-09-23 04:50:20

标签: c# unity3d protobuf-net

我对Unity3d中的protobuf-net有疑问。 是否可以序列化unity3d类型:GameObject。 例如,我在class属性中有类型GameObject,这个类是序列化/反序列化的吗?

using ProtoBuf;
using UnityEngine;
...

[ProtoContract]  
public class Example 
{
   [ProtoMember(1)]
   public int Count {get;set;}
   [ProtoMember(2)]
   public string Name {get;set;}
   [ProtoMember(3)]
   public GameObject MyGameObject {get;set;}  // ???
}

抱歉,我的英文..

1 个答案:

答案 0 :(得分:1)

您必须告诉protobuf-net您要序列化的类和属性。由于您无法使用属性修饰GameObject,因此有不同的方法可以做到这一点。

您可以使用RuntimeTypeModel.Default执行此操作,此处为类Point的示例,它设置要序列化的属性XY

RuntimeTypeModel.Default
       .Add(typeof(System.Windows.Point), false).Add("X", "Y");

在这种情况下,您的GameObject必须有默认构造函数。