Je me retourne une nouvelle fois vers la communauté Unity Fr pour pouvoir m'aider à comprendre un problème.
L'objectif du programme que je vais vous présentez ci-dessous est pour ajouter des scripts automatiquement aux derniers enfants de le hierarchy.
Je ne veux pas cibler les enfants car les gameObjects vont tout le temps changer étant donné que je viendrai charger des nouvelles maquettes Revit (logiciel de conception 3D, BIM) au format FBX.
Ainsi donc, de nouveaux GameObject seront créés.
Le principe est de placer manuellement le script "AddComponent1" sur les premiers parents et par la suite, le code va déposer un autre script sur ses enfants et ainsi de suite jusqu'à délivrer le script nécessaire au bon déroulement du jeu "MouseOnGameObject3".
Ce n'est peut être pas la solution la plus optimisé mais avec mon niveau et avec les recherches que j'ai effectué, je n'ai trouvé que cette possibilité.
Code : Tout sélectionner
public class AddComponent1 : MonoBehaviour {
public GameObject[] FirstChild;
void Start()
{
foreach (Transform child in transform)
child.transform.gameObject.tag = "FirstChild";
FirstChild = GameObject.FindGameObjectsWithTag("FirstChild");
foreach (GameObject one in FirstChild)
one.AddComponent<AddComponent2>();
}
}
Code : Tout sélectionner
public class AddComponent2: MonoBehaviour {
public GameObject[] SecondChild;
void Start ()
{
foreach (Transform child in transform)
child.transform.gameObject.tag = "SecondChild";
SecondChild = GameObject.FindGameObjectsWithTag("SecondChild");
foreach (GameObject second in SecondChild)
second.AddComponent<MouseOnGameObject3>();
}
}
Je vous montrer quelques screens pour énoncer mes propos.
De plus, et c'est là le vrai problème que je souhaite vous exposez.
Lorsque je lance le mode play et que tout se place bien comme il faut... et bien ça se place un peu trop.
En effet, mes scripts que je souhaite donner aux derniers enfants sont multipliés.
Plein de script sont donc placés... il doit forcement lire plusieurs fois la même fonction...
Merci pour votre aide et vos futurs réponses et j'espère avoir été claire !