public void GetObjectData(UnitySerializationInfo info) { int cnt = (_lst != null) ? _lst.Count : 0; info.AddValue("count", cnt); info.AddValue("assembly", _elementType.Assembly.GetName().Name); info.AddValue("type", _elementType.FullName); info.AddValue("isArray", _isArray); for (int i = 0; i < cnt; i++) { info.AddValue("element" + i.ToString(), _lst[i], _elementType); } }
public void GetObjectData(object obj, System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) { _unitySerialInfo.StartContext(info, context); var tp = obj.GetType(); if (obj is IUnitySerializable) { (obj as IUnitySerializable).GetObjectData(_unitySerialInfo); } else { foreach (var fi in GetAllSerializableFields(tp)) { try { _unitySerialInfo.AddValue(fi.Name, fi.GetValue(obj), fi.FieldType); } catch (SerializationException ex) { UnityEngine.Debug.LogWarning("Spacepuppy Unity Serialization: " + ex.Message); } } } _unitySerialInfo.EndContext(); }