2017-08-10 26 views
0

配列全体を通過するif文を作成したい場合は、 "Button"で始まる名前の要素を見つけたときにtrueを返します。以下のような:文字列とワイルドカード文字を一致させて配列要素を検索

例えばので
if (Array[i].name == "Button*") 

例えば、要素が名前を持っているとき、それは「ボタン1」または「ButtonBlaBlaBla」真のだろうが、名前は「ボタン」で始まらない場合はfalseになります」 1Button "を選択する。

PS:私は団結して働いていますが、これはこれとは関係がないと確信していますので、ここに投稿しました。同じ問題に関する既存の投稿がある場合は、それを私にリンクしてください。 Button*を一致させるため

+0

感謝を。 – tiancar

+0

ようこそ。しかし、ところで、このような名前のチェックは、Unityでは素晴らしいアイデアではありません。代わりにタグを付けてみてください。あなたのボタンが "Button"(インスペクタでタグを設定)としてタグ付けされている場合、 'button.CompareTag(" Button ")'をチェックするのは非常に高速です。本当にオブジェクトの誤ったタグ付けが許可されていないので(タグはエディタによって保存されます)。 – piojo

+0

また、ボタンのコンポーネントをチェックすることもできます: 'button.GetComponent ()!= null'かどうかチェックし、そのコンポーネントからの情報が必要な場合は変数に格納し、 。 (ゲーム開発では、理由がなければ通常は関数を2回呼びたくないからです。) – piojo

答えて

1

チェックを使用する必要があります。 name.EndsWith("Button")*Buttonと一致します。 *Button*と一致させるには、name.Contains("Button")にチェックしてください。そこ

2

あなたがname.StartsWith("Button")かどうかStartsWith()

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

あなたが持っている:助けを

if(Array[i].name.StartsWith ("Button")) 
関連する問題