private IEnumerator SetUpVisuelRoutine() { // Récupération de tous les attributs à changer. GameObject Nom; GameObject Puissance; GameObject TexteCarte; // Cout AKA ou rang pour les sorts. GameObject CoutAKA; GameObject FondCarte; while (GetComponent <Carte>().Name.Length <= 1) { // On attend l'arrivée des informations yield return(new WaitForSeconds(0.1f)); } // On vérifie que tous les objets existent bien. try { Nom = transform.Find("Name").gameObject; Puissance = transform.Find("Puissance").gameObject; TexteCarte = transform.Find("TextCarte").gameObject; CoutAKA = transform.Find("CoutAKA").gameObject; FondCarte = transform.Find("FondCarte").gameObject; } catch (NullReferenceException) { Debug.LogError("Les objets enfants sont introuvables.\n Impossible de créer les attributs de carte"); Destroy(this); yield break; } // On réactive les composants dans le cas où ils auraient été désactivés // Dans le cas d'un déplacement de l'adversaire par exemple Nom.SetActive(true); Puissance.SetActive(true); TexteCarte.SetActive(true); CoutAKA.SetActive(true); Nom.GetComponent <TextMesh>().text = SetUpString(GetComponent <Carte>().Name, 25); // Mise en place de la puissance de la carte. (/niveau pour les sorts). if (GetComponent <Carte>().IsEntite()) { Puissance.GetComponent <TextMesh>().text = GetComponent <Entite>().getPuissance().ToString(); } else if (GetComponent <Carte>().IsAssistance()) { Puissance.GetComponent <TextMesh>().text = GetComponent <Assistance>().Puissance.ToString(); } // Equivalent de la puissance pour les sorts => Niveau. else if (GetComponent <Carte>().IsSort()) { Puissance.GetComponent <TextMesh>().text = GetComponent <Sort>().Niveau.ToString(); } else { // Sinon on desative le TextMesh (ne devrait pas arriver normalement). Puissance.SetActive(false); } // Cout en AKA if (GetComponent <Carte>().IsEntite()) { CoutAKA.GetComponent <TextMesh>().text = GetComponent <Entite>().CoutAKA.ToString(); } else if (GetComponent <Carte>().IsSort()) { CoutAKA.GetComponent <TextMesh>().text = GetComponent <Sort>().Rang.ToString(); } else { CoutAKA.SetActive(false); } // Mise en place du texte de la carte. // A afficher en jeu? (si trop de texte). TexteCarte.GetComponent <TextMesh>().text = SetUpString(GetComponent <Carte>().GetInfoCarte(), 25); // On fait des vérifications dans l'éditeur. #if (UNITY_EDITOR) if (!CheckTailleCarte()) { Debug.LogError("Probleme avec le format de la carte"); } #endif FondCarte.GetComponent <SpriteRenderer>().color = GetCouleurCarte(); VisuelOK = true; }