public MsbPartsHit Serialize(GameObject parent)
    {
        var part = new MsbPartsHit();

        part.HitFilterID        = HitFilterID;
        part.SoundSpaceType     = SoundSpace;
        part.EnvLightMapSpot    = (EnvLightMapSpot == "") ? null : EnvLightMapSpot;
        part.ReflectPlaneHeight = ReflectPlaneHeight;

        _Serialize(part, parent);
        part.NvmGroup1 = NvmGroup1;
        part.NvmGroup2 = NvmGroup2;
        part.NvmGroup3 = NvmGroup3;
        part.NvmGroup4 = NvmGroup4;

        part.VagrantID1 = VagrantID1;
        part.VagrantID2 = VagrantID2;
        part.VagrantID3 = VagrantID3;

        part.MapNameID        = MapNameID;
        part.DisableStart     = (short)(DisableStart ? 1 : 0);
        part.DisableBonfireID = DisableBonfireEntityID;

        part.PlayRegionID = PlayRegionID;

        part.LockCamID1 = LockCamID1;
        part.LockCamID2 = LockCamID2;
        return(part);
    }
    public void SetPart(MsbPartsHit part)
    {
        setBasePart(part);
        HitFilterID        = part.HitFilterID;
        SoundSpace         = part.SoundSpaceType;
        EnvLightMapSpot    = part.EnvLightMapSpot;
        ReflectPlaneHeight = part.ReflectPlaneHeight;

        NvmGroup1 = part.NvmGroup1;
        NvmGroup2 = part.NvmGroup2;
        NvmGroup3 = part.NvmGroup3;
        NvmGroup4 = part.NvmGroup4;

        VagrantID1 = part.VagrantID1;
        VagrantID2 = part.VagrantID2;
        VagrantID3 = part.VagrantID3;

        MapNameID              = part.MapNameID;
        DisableStart           = (part.DisableStart > 0);
        DisableBonfireEntityID = part.DisableBonfireID;

        PlayRegionID = part.PlayRegionID;

        LockCamID1 = part.LockCamID1;
        LockCamID2 = part.LockCamID2;
    }