// Deserialize object public void OnAfterDeserialize() { // If nothing was serialized into the byte array, exit out if (byteArray.Length == 0) { return; } // Deserialize var serializer = new BinaryFormatter(); using (var stream = new MemoryStream(byteArray)) unserializedObject = serializer.Deserialize(stream); // Check if surrogate and replace if (unserializedObject.GetType().GetInterfaces().Contains(typeof(ISerializationSurrogate))) { SurrogateHandler.GetOriginal(ref unserializedObject); } //Debug.Log("Deserialized Type: " + unserializedObject.GetType() + " | Value: " + unserializedObject.ToString()); }