Je souhaite créer un script "OnOff" permettant de désactiver tous les composant Light contenus dans les enfants. L'idée c'est de pouvoir déposer le script sur un interupteur sans avoir rien a configurer pour qu'il controle les "lights" enfants. C'est un script que je souhaite pouvoir réutiliser facilement pour d'autres situations.
Pour le moment je fais ça pour switcher (si open = true alors j'allume):
Code : Tout sélectionner
void FixedUpdate()
{
if (locked || gamemanager.dijoncteur == false || !open)
{
light1.enabled = false; light2.enabled = false; if(isDebugLog)Debug.Log("IF");
audiooff.Play();
}
else if(!locked || gamemanager.dijoncteur == true || open)
{
light1.enabled = true; light2.enabled = true; if (isDebugLog)Debug.Log("ELSE");
audioon.Play();
La prochaine étape serait donc de chercher dans les enfants de l'interupteur et de les ajouter à une liste.
Je crée la liste :
public List<GameObject> listLights = new List<GameObject>();
et après je ne sais pas comment faire sans utiliser les tags, j'ai tenté ça dans le start :
listLights.AddRange(gameObject.GetComponents<Onoff>());
Mais j'obtiens ça :
Erreur CS1503 Argument 1 : conversion impossible de 'Onoff[]' en System.Collections.Generic.IEnumerable<UnityEngine.GameObject>'
Et je suis perdu...
Après il restera la lecture de la liste pour appliquer le On ou OFF.
Si vous avez un lien ou un tuto pour faire quelque chose dans le genre...
D'avance merci pour votre aide