예제 #1
0
 private void EndSerialization(System.IO.Stream strm, UnityData data)
 {
     if (data != null)
     {
         data.SetData(strm, _unityObjects.ToArray());
     }
     _unityObjects.Clear();
 }
예제 #2
0
        public void Serialize(UnityData data, object graph)
        {
            if (data == null)
            {
                throw new System.ArgumentNullException("data");
            }

            using (var strm = new MemoryStream())
            {
                this.StartSerialization();

                _formatter.SurrogateSelector = this;
                _formatter.Serialize(strm, graph);

                strm.Position = 0;
                this.EndSerialization(strm, data);
            }
        }
예제 #3
0
        public object Deserialize(UnityData data)
        {
            if (data == null)
            {
                throw new System.ArgumentNullException("data");
            }

            using (var strm = new MemoryStream())
            {
                UnityEngine.Object[] refs;
                data.GetData(strm, out refs);
                strm.Position = 0;

                this.StartDeserialization(refs);

                _formatter.SurrogateSelector = this;
                var result = _formatter.Deserialize(strm);

                this.EndDeserialization();

                return(result);
            }
        }