[Résolu]rechercher plusieurs materiaux

Pour les scripts écrits en C#
Règles du forum
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :

Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé

Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie

Exemple :

[DB-RS] Mouvement perso multijoueur
nigel
Messages : 166
Inscription : 05 Mai 2015 01:51

[Résolu]rechercher plusieurs materiaux

Message par nigel » 14 Juin 2015 19:48

C'est encore moi salut,

j'utilise ce code pour rechercher plusieurs matériaux dans mon object,
Le probleme est assez bizarre, Je suis sensé rentrer dans la condition if de la seconde boucle foreach,
car le premier debug.log m'indique que la condition est "vrai" ,pourtant le second reste muet et ma couleur est inchangé
(il parait que les tableau sont copiés je verrai ça après, mais je devrai quand même au moins pouvoir afficher mon second debug.log non?)

Code : Tout sélectionner

using UnityEngine;
using System.Collections;

public class RandomRoomColor : MonoBehaviour {

	// Use this for initialization
	void Start () {
		
		
		
		
	

		MeshRenderer[] rend= GetComponentsInChildren<MeshRenderer>();
		
		foreach(MeshRenderer ren in rend)
		{
			Material[] mats= ren.materials;
			
			foreach(Material mat in mats)
			{
				Debug.Log(mat.name);

				if (mat.name=="Mat_mur_1")
				{
					mat.color= Color.blue;
					Debug.Log("dedans");

				}

				 
			}
		}
		
		
	}

	
}
Dernière édition par nigel le 15 Juin 2015 11:36, édité 1 fois.
ça explose -> Atomic Command
ca vole -> Long Range Black Cat

sotec
Messages : 542
Inscription : 21 Sep 2012 10:11

Re: rechercher plusieurs materiaux

Message par sotec » 15 Juin 2015 10:34

je ne vois pas d'erreur au premier coup d'oeil, essaye de faire un coup de debugger pour comparer les variable, ( pour comparer des chaine de char, je les passe souvent en minuscule ou majuscule (ToLower() / ToUpper())

ensuite, dans ton debug.log remplace :
Debug.Log(mat.name); par Debug.log(mat.name=="Mat_mur_1" ? "condition à true" : "Condition à false");

tu saura reellement si ta condition est bonne
┬─┬ノ(º - ºノ) - (╯°□°)╯︵ ┻━┻

nigel
Messages : 166
Inscription : 05 Mai 2015 01:51

Re: rechercher plusieurs materiaux

Message par nigel » 15 Juin 2015 11:26

J'ai trouvé c’était un peu ma faute
Faut dire que c'est pas évident pour un débutant haha

Les matériaux instanciés sont concaténés en + (instance)

Donc il faut comparer dans la condition avec "nom du mat (instance)"
Et machinalement je voulais pas voir le "(instance)" en plus dans la console, je ne pensais pas que le nom du mat était modifié.

Mais le fait d'avoir chercher pendant des heures m'a beaucoup appris
ça explose -> Atomic Command
ca vole -> Long Range Black Cat

Répondre

Revenir vers « (C#) CSharp »