private static Snapshot DeserializeSnapshot(ComponentData snapshot, World world) { var schemaDataOpt = snapshot.SchemaData; if (!schemaDataOpt.HasValue) { throw new ArgumentException($"Can not deserialize an empty {nameof(ComponentData)}"); } return(Serialization.DeserializeSnapshot(schemaDataOpt.Value.GetFields(), world)); }
public Snapshot ToComponentSnapshot(global::Unity.Entities.World world) { var componentDataSchema = new ComponentData(new SchemaComponentData(1004)); Serialization.SerializeComponent(this, componentDataSchema.SchemaData.Value.GetFields(), world); var snapshot = Serialization.DeserializeSnapshot(componentDataSchema.SchemaData.Value.GetFields(), world); componentDataSchema.SchemaData?.Destroy(); componentDataSchema.SchemaData = null; return(snapshot); }