public void Init(PlayerBehaviour player)
    {
        this.player = player;

        CustomizationProfilesList profileList = FileManager.LoadFile <CustomizationProfilesList>(FILE_LIST_NAME + CustomizationProfilesList.FILE_TYPE);

        // not the first time we play
        if (profileList != null)
        {
            loadedProfiles = new CustomizationProfile[profileList.profilesNames.Length];

            for (int i = 0; i < profileList.profilesNames.Length; i++)
            {
                loadedProfiles[i] = FileManager.LoadFile <CustomizationProfile>(profileList.profilesNames[i], PROFILE_FOLDER_NAME);
            }
        }
        else         // first time we play
        {
            Debug.Log(debugTag + "No profile names found, generating default profile");

            loadedProfiles    = new CustomizationProfile[1];
            loadedProfiles[0] = new CustomizationProfile("Default");
        }

        preferences = FileManager.LoadFile <PlayerPreferences>(PLAYER_PREFERENCES_FILE_NAME + CustomizationProfilesList.FILE_TYPE);

        if (preferences == null)
        {
            preferences = new PlayerPreferences();
        }

        InitInternal();
    }
    public void SaveCustomizationprofiles(CustomizationProfile[] profiles, int selectedProfileIndex)
    {
        DeleteLocalSave(profiles);

        CustomizationProfilesList profileList = new CustomizationProfilesList(profiles);

        FileManager.SaveFile(profileList, FILE_LIST_NAME + CustomizationProfilesList.FILE_TYPE);

        for (int i = 0; i < profiles.Length; i++)
        {
            FileManager.SaveFile(profiles[i], profileList.profilesNames[i], PROFILE_FOLDER_NAME);
        }

        preferences.selectedProfileIndex = selectedProfileIndex;
        FileManager.SaveFile(preferences, PLAYER_PREFERENCES_FILE_NAME + CustomizationProfilesList.FILE_TYPE);

        Debug.Log(debugTag + "All profiles have been saved localy");
    }
    void DeleteLocalSave(CustomizationProfile[] profiles)
    {
        List <CustomizationProfile> toDelete        = new List <CustomizationProfile>();
        List <CustomizationProfile> currentProfiles = new List <CustomizationProfile>(profiles);

        // searches for profiles that still exists and that were delete in game
        foreach (CustomizationProfile profile in loadedProfiles)
        {
            if (!currentProfiles.Contains(profile))
            {
                toDelete.Add(profile);
            }
        }

        // delete profiles that do not exist anymore
        CustomizationProfilesList toDeleteNames = new CustomizationProfilesList(toDelete.ToArray());

        foreach (string fileName in toDeleteNames.profilesNames)
        {
            FileManager.DeleteFile(fileName, PROFILE_FOLDER_NAME);
        }
    }