public GDEReadSceneData DeepClone()
        {
            GDEReadSceneData newClone = ShallowClone();

            newClone.custom_field = custom_field.DeepClone();
            return(newClone);
        }
        public GDEReadSceneData ShallowClone()
        {
            string           newKey   = Guid.NewGuid().ToString();
            GDEReadSceneData newClone = new GDEReadSceneData(newKey);

            newClone.bool_field    = bool_field;
            newClone.int_field     = int_field;
            newClone.float_field   = float_field;
            newClone.string_field  = string_field;
            newClone.vector2_field = vector2_field;
            newClone.vector3_field = vector3_field;
            newClone.vector4_field = vector4_field;
            newClone.color_field   = color_field;

            newClone.custom_field = custom_field;

            newClone.bool_list_field = new List <bool>(bool_list_field);
            newClone.Set_bool_list_field();
            newClone.int_list_field = new List <int>(int_list_field);
            newClone.Set_int_list_field();
            newClone.float_list_field = new List <float>(float_list_field);
            newClone.Set_float_list_field();
            newClone.string_list_field = new List <string>(string_list_field);
            newClone.Set_string_list_field();
            newClone.vector2_list_field = new List <Vector2>(vector2_list_field);
            newClone.Set_vector2_list_field();
            newClone.vector3_list_field = new List <Vector3>(vector3_list_field);
            newClone.Set_vector3_list_field();
            newClone.vector4_list_field = new List <Vector4>(vector4_list_field);
            newClone.Set_vector4_list_field();
            newClone.color_list_field = new List <Color>(color_list_field);
            newClone.Set_color_list_field();

            return(newClone);
        }