public static SettingsProvider CreateFromSettingsObject()
        {
            // Create an AssetSettingsProvider from a settings object (UnityEngine.Object):
            var settingsObj = LevelBuilderSettings.GetOrCreateSettings();

            var provider = AssetSettingsProvider.CreateProviderFromObject(ProviderPath, settingsObj);

            // Register keywords from the properties of MyCustomSettings
            provider.keywords = SettingsProvider.GetSearchKeywordsFromSerializedObject(new SerializedObject(settingsObj));
            return(provider);
        }
        protected override void Initialize()
        {
            if (loadedDefaultValues)
            {
                return;
            }

            loadedDefaultValues = true;
            var levelBuilderSettings = LevelBuilderSettings.GetOrCreateSettings();

            fullWall               = (PrefabsPerSide)levelBuilderSettings.fullWall.Clone();
            wallShortenedLeft      = (PrefabsPerSide)levelBuilderSettings.wallShortenedLeft.Clone();
            wallShortenedRight     = (PrefabsPerSide)levelBuilderSettings.wallShortenedRight.Clone();
            wallShortenedBothSides = (PrefabsPerSide)levelBuilderSettings.wallShortenedBothSides.Clone();
            floor             = (RoomElementSpawnSettings)levelBuilderSettings.floor.Clone();
            innerCorner       = (RoomElementSpawnSettings)levelBuilderSettings.innerCorner.Clone();
            outerCorner       = (RoomElementSpawnSettings)levelBuilderSettings.outerCorner.Clone();
            materialSlotSetup = levelBuilderSettings.materialSlotSetup;
            floorSize         = levelBuilderSettings.floorSize;
            roomName          = (string)levelBuilderSettings.roomName.Clone();
            roomSizeX         = levelBuilderSettings.roomSizeX;
            roomSizeZ         = levelBuilderSettings.roomSizeZ;
        }