2017-08-10 11 views
0

Je veux avoir une instruction if qui traverse tout le tableau et est vraie quand il trouve des éléments dont le nom commence par "Button" et après cela peut être quelque chose, quelque chose comme:Rechercher un élément de tableau en faisant correspondre String avec un caractère générique

if (Array[i].name == "Button*") 

Ainsi, par exemple, il serait vrai quand un élément a le nom « Button1 » ou « ButtonBlaBlaBla », mais il serait faux si le nom ne commence pas par « Bouton », par exemple " 1Bouton ". PS: Je travaille dans l'unité, mais je suis assez sûr que cela n'a rien à voir avec ça, alors j'ai posté ici. S'il existe un post sur le même problème, veuillez le lier à moi.

+0

Merci pour l'aide. – tiancar

+0

De rien. Mais en passant, ce genre de vérification de nom n'est pas une si bonne idée dans Unity. Essayez d'attacher un tag à la place. Si vos boutons sont marqués comme "Button" (mettre des balises dans l'inspecteur), vérifier 'button.CompareTag (" Button ")' est très rapide, et c'est un peu plus sûr parce que vous n'êtes pas vraiment autorisé à mal balise un objet (les balises sont stockées par l'éditeur). – piojo

+0

Vous pouvez également vérifier le composant sur le bouton: vérifiez si 'button.GetComponent ()! = Null', ou mieux encore, si vous avez besoin d'informations de ce composant, stockez-le dans une variable, puis vérifiez s'il est nul . (Parce que dans le développement de jeux, vous ne voulez généralement pas appeler deux fois les fonctions s'il n'y a pas de raison.) – piojo

Répondre

1

Vérifiez si name.StartsWith("Button") pour faire correspondre Button*. name.EndsWith("Button") correspond à *Button. Et pour correspondre à *Button*, vérifiez name.Contains("Button").

2

Vous devez utiliser StartsWith()

if(Array[i].name.StartsWith("Button")) 
1

Là, vous avez:

if(Array[i].name.StartsWith ("Button"))