public unsafe override void LoadToObject(FakeStruct fake, Component game)
        {
            PlatformEffectorData *data = (PlatformEffectorData *)fake.ip;
            var obj = game.GetComponent <PlatformEffector2D>();

            if (obj == null)
            {
                return;
            }
            obj.useColliderMask   = data->useColliderMask;
            obj.colliderMask      = data->colliderMask;
            obj.useOneWay         = data->useOneWay;
            obj.useOneWayGrouping = data->useOneWayGrouping;
            obj.useSideFriction   = data->useSideFriction;
            obj.useSideBounce     = data->useSideBounce;
            obj.surfaceArc        = data->surfaceArc;
            obj.sideArc           = data->sideArc;
            obj.rotationalOffset  = data->rotationalOffset;
        }
        public static unsafe FakeStruct LoadFromObject(Component com, DataBuffer buffer)
        {
            var ae = com as PlatformEffector2D;

            if (ae == null)
            {
                return(null);
            }
            FakeStruct            fake = new FakeStruct(buffer, PlatformEffectorData.ElementSize);
            PlatformEffectorData *data = (PlatformEffectorData *)fake.ip;

            data->useColliderMask   = ae.useColliderMask;
            data->colliderMask      = ae.colliderMask;
            data->useOneWayGrouping = ae.useOneWayGrouping;
            data->useSideFriction   = ae.useSideFriction;
            data->useSideBounce     = ae.useSideBounce;
            data->surfaceArc        = ae.surfaceArc;
            data->sideArc           = ae.sideArc;
            data->rotationalOffset  = ae.rotationalOffset;
            return(fake);
        }