You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

66 lines
2.1 KiB

using System.Collections;
using System.Collections.Generic;
using System.Runtime.Serialization;
using UnityEngine;
namespace Networking {
public class Vector3SerializationSurrogate : ISerializationSurrogate
{
// Method called to serialize a Vector3 object
public void GetObjectData(System.Object obj, SerializationInfo info, StreamingContext context)
{
Vector3 v3 = (Vector3)obj;
info.AddValue("x", v3.x);
info.AddValue("y", v3.y);
info.AddValue("z", v3.z);
}
// Method called to deserialize a Vector3 object
public System.Object SetObjectData(System.Object obj, SerializationInfo info,
StreamingContext context, ISurrogateSelector selector)
{
Vector3 v3 = (Vector3)obj;
v3.x = (float)info.GetValue("x", typeof(float));
v3.y = (float)info.GetValue("y", typeof(float));
v3.z = (float)info.GetValue("z", typeof(float));
obj = v3;
return obj;
}
}
public class ColorSerializationSurrogate : ISerializationSurrogate
{
// Method called to serialize a Vector3 object
public void GetObjectData(System.Object obj, SerializationInfo info, StreamingContext context)
{
Color col = (Color)obj;
info.AddValue("r", col.r);
info.AddValue("g", col.g);
info.AddValue("b", col.b);
info.AddValue("a", col.a);
}
// Method called to deserialize a Vector3 object
public System.Object SetObjectData(System.Object obj, SerializationInfo info,
StreamingContext context, ISurrogateSelector selector)
{
Color col = (Color)obj;
col.r = (float)info.GetValue("r", typeof(float));
col.g = (float)info.GetValue("g", typeof(float));
col.b = (float)info.GetValue("b", typeof(float));
col.a = (float)info.GetValue("a", typeof(float));
obj = col;
return obj;
}
}
}