public override void Deserialize(Stream stream, Type type, ref object instance) { var members = GetMembers(type); for (int i = 0; i < members.Length; i++) { var member = X20Member.WrapMember(members[i], instance); #if DBG Debug.Log("Deserializing: " + member.Name); #endif if (typeof(Component).IsAssignableFrom(member.Type)) { member.Value = DeserializeComponentReference(stream, member.Type); } else if (member.Type == typeof(GameObject)) { member.Value = DeserializeGameObjectReference(stream); } else { var memberValue = member.Value; ctx.Serializer.Deserialize_Main(stream, member.Type, ref memberValue); member.Value = memberValue; } } }
public override void Serialize(Stream stream, Type type, object value) { var members = GetMembers(type); for (int i = 0; i < members.Length; i++) { var member = X20Member.WrapMember(members[i], value); #if DBG Debug.Log("Serializing: " + member.Name); #endif if (typeof(Component).IsAssignableFrom(member.Type)) { SerializeComponentReference(stream, member.Value as Component); } else if (member.Type == typeof(GameObject)) { SerializeGameObjectReference(stream, member.Value as GameObject); } else { ctx.Serializer.Serialize_Main(stream, member.Type, member.Value); } } }