Example #1
0
        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;
                }
            }
        }
Example #2
0
        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);
                }
            }
        }