Пример #1
0
        /// <summary>
        /// シリアライズ
        /// /// </summary>
        /// <returns></returns>
        public string Serialize()
        {
            List <byte> data = new List <byte>(256);

            data.AddRange(BinaryStructConverter.ToByteArray((serializableData)this));

            if (frame.collider != null && frame.collider.Length > 0)
            {
                for (int i = 0; i < frame.collider.Length; i++)
                {
                    data.AddRange(BinaryStructConverter.ToByteArray(frame.collider[i]));
                }
            }

            return(Convert.ToBase64String(data.ToArray()));
        }
Пример #2
0
        /// <summary>
        /// デシリアライズ
        /// /// </summary>
        /// <param name="s"></param>
        static public internalFrameData Deserialize(string s)
        {
            var data                 = Convert.FromBase64String(s);
            var serializedResult     = BinaryStructConverter.FromByteArray <serializableData>(data);
            var count                = serializedResult.numColliders;
            internalFrameData result = serializedResult;

            if (count > 0)
            {
                int sizeofFrame    = Marshal.SizeOf(typeof(serializableData));
                int sizeofCollider = Marshal.SizeOf(typeof(HitboxColliderData));
                var colliderArray  = new HitboxColliderData[count];

                for (int i = 0; i < count; i++)
                {
                    colliderArray[i] = BinaryStructConverter.FromByteArray <HitboxColliderData>(data, sizeofFrame + sizeofCollider * i);
                }

                result.frame.collider = colliderArray;
            }

            return(result);
        }