/// <summary>
        /// Recupérer les cartes qui correspondent à un type précis.
        /// </summary>
        /// <param name="typeCarte"></param>
        /// <returns></returns>
        public List <GameObject> CartesCorrespondantesType(CarteType.Type typeCarte)
        {
            Dictionary <string, List <GameObject> > uniqueCards = getUniqueCards();
            List <GameObject> listeCartes = new List <GameObject>();

            foreach (KeyValuePair <string, List <GameObject> > cartesUniques in uniqueCards)
            {
                if ((cartesUniques.Value[0].GetComponent <Carte>().GetType() == typeof(Entite) && typeCarte == CarteType.Type.ENTITE) ||
                    (cartesUniques.Value[0].GetComponent <Carte>().GetType() == typeof(Sort) && typeCarte == CarteType.Type.SORT) ||
                    (cartesUniques.Value[0].GetComponent <Carte>().GetType() == typeof(Assistance) && typeCarte == CarteType.Type.ASSISTANCE))
                {
                    listeCartes.Add(cartesUniques.Value[0]);
                }
            }
            return(listeCartes);
        }
 public void ResetFiltres()
 {
     filtreAscendance  = Entite.Ascendance.NONE;
     filtreElementaire = Entite.Element.NONE;
     filtreType        = CarteType.Type.AUCUN;
 }
        /// <summary>
        /// Filtrer les cartes selon un type d'entité.
        /// Methode appelé par un bouton de sélection.
        /// </summary>
        /// <param name="type"></param>
        public void FiltreParType(string type)
        {
            CarteType.Type typeCarte    = CarteType.Type.AUCUN;
            GameObject     BoutonPresse = null;

            switch (type)
            {
            case "entite":
                typeCarte    = CarteType.Type.ENTITE;
                BoutonPresse = GameObject.Find("FiltreEntite");
                break;

            case "sort":
                typeCarte    = CarteType.Type.SORT;
                BoutonPresse = GameObject.Find("FiltreSort");
                break;

            case "assistance":
                typeCarte    = CarteType.Type.ASSISTANCE;
                BoutonPresse = GameObject.Find("FiltreAssistance");
                break;

            default:
                Debug.LogError("Il y a une erreur dans le type d'entité\n" +
                               "Type d'entité inexistant.");
                return;
            }

            FiltreType = typeCarte;

            if (BoutonPresse.GetComponent <Image>().color == Color.green)
            {
                // Le filtre est actif
                // on le desactive
                BoutonPresse.GetComponent <Image>().color = Color.white;
                GetComponent <GameManagerManageCards>().ReorganizeCardsInAllCardsUnique();
                FiltreType = CarteType.Type.AUCUN;
            }
            else
            {
                // Le filtre n'est pas actif.
                BoutonPresse.GetComponent <Image>().color = Color.green;
                // On desactive les couleurs d'autres filtres si ils étaient actifs
                GameObject Filtres = GameObject.Find("FiltresCartes");
                for (int i = 0; i < Filtres.transform.childCount; i++)
                {
                    if (Filtres.transform.GetChild(i).gameObject != BoutonPresse)
                    {
                        Filtres.transform.GetChild(i).GetComponent <Image>().color = Color.white;
                    }
                }
                List <GameObject> CartesTypes = CartesCorrespondantesType(typeCarte);
                Debug.Log("Ce filtrage a amené " + CartesTypes.Count + " cartes");
                PutCardsInScrollView("allCards", CartesTypes, true);

                if (type == "entite")
                {
                    StartCoroutine(AfficherFiltresElementaires());
                }

                ResetFiltres();
                filtreType = typeCarte;
            }
        }