internal static object GetValue(object obj, SerializationInfo info, StreamingContext context) { if (obj is UnityEngine.Vector2) { return(SimpleUnityStructureSurrogate.GetVector2(info)); } else if (obj is UnityEngine.Vector3) { return(SimpleUnityStructureSurrogate.GetVector3(info)); } else if (obj is UnityEngine.Vector4) { return(SimpleUnityStructureSurrogate.GetVector4(info)); } else if (obj is UnityEngine.Quaternion) { return(SimpleUnityStructureSurrogate.GetQuaternion(info)); } else if (obj is UnityEngine.Color) { return(SimpleUnityStructureSurrogate.GetColor(info)); } else if (obj is UnityEngine.LayerMask) { return(SimpleUnityStructureSurrogate.GetLayerMask(info)); } else if (obj is UnityEngine.Matrix4x4) { return(SimpleUnityStructureSurrogate.GetMatrix4x4(info)); } return(null); }
public void GetObjectData(object obj, SerializationInfo info, StreamingContext context) { if (obj is IPersistentUnityObject) { if (obj is PersistentAssetToken) { (obj as PersistentAssetToken).OnSerialize(info, context); } else if (obj is IPersistentAsset) { if (_proxy == null) { _proxy = new AutoPersistentAssetToken(); } info.SetType(typeof(AutoPersistentAssetToken)); _proxy.SetObject(obj as IPersistentAsset); _proxy.OnSerialize(info, context); _proxy.SetObject(null); } else if (obj is PersistentObject) { (obj as PersistentObject).OnSerialize(info, context); } else { throw new SerializationException("IPersistentUnityObjects should be handled by an IPersistentAsset, not directly by the serializtion engine."); } } else { SimpleUnityStructureSurrogate.AddValue(obj, info, context); } }
public static bool IsSpeciallySerialized(System.Type tp) { if (tp == null) { throw new System.ArgumentNullException("tp"); } if (typeof(IPersistentUnityObject).IsAssignableFrom(tp)) { return(true); } return(SimpleUnityStructureSurrogate.IsSpeciallySerialized(tp)); }
public ISerializationSurrogate GetSurrogate(Type type, StreamingContext context, out ISurrogateSelector selector) { if (SimpleUnityStructureSurrogate.IsSpeciallySerialized(type)) { selector = this; return(this); } else if (_nextSelector != null) { return(_nextSelector.GetSurrogate(type, context, out selector)); } else { selector = null; return(null); } }
public object SetObjectData(object obj, SerializationInfo info, StreamingContext context, ISurrogateSelector selector) { var we = obj.GetType(); if (obj is IPersistentUnityObject) { (obj as IPersistentUnityObject).OnDeserialize(info, context, _assets); if (obj is AutoPersistentAssetToken) { return((obj as AutoPersistentAssetToken).PreemptiveCreate()); } return(obj); } else { return(SimpleUnityStructureSurrogate.GetValue(obj, info, context)); } }
internal static bool AddValue(object obj, SerializationInfo info, StreamingContext context) { if (obj is UnityEngine.Vector2) { SimpleUnityStructureSurrogate.AddValue(info, (UnityEngine.Vector2)obj); return(true); } else if (obj is UnityEngine.Vector3) { SimpleUnityStructureSurrogate.AddValue(info, (UnityEngine.Vector3)obj); return(true); } else if (obj is UnityEngine.Vector4) { SimpleUnityStructureSurrogate.AddValue(info, (UnityEngine.Vector4)obj); return(true); } else if (obj is UnityEngine.Quaternion) { SimpleUnityStructureSurrogate.AddValue(info, (UnityEngine.Quaternion)obj); return(true); } else if (obj is UnityEngine.Color) { SimpleUnityStructureSurrogate.AddValue(info, (UnityEngine.Color)obj); return(true); } else if (obj is UnityEngine.LayerMask) { SimpleUnityStructureSurrogate.AddValue(info, (UnityEngine.LayerMask)obj); return(true); } else if (obj is UnityEngine.Matrix4x4) { SimpleUnityStructureSurrogate.AddValue(info, (UnityEngine.Matrix4x4)obj); return(true); } return(false); }
public object SetObjectData(object obj, SerializationInfo info, StreamingContext context, ISurrogateSelector selector) { return(SimpleUnityStructureSurrogate.GetValue(obj, info, context)); }
public void GetObjectData(object obj, SerializationInfo info, StreamingContext context) { SimpleUnityStructureSurrogate.AddValue(obj, info, context); }