検索機能付きポップアップウィンドウ(Editor拡張)

検索機能付きポップアップウィンドウ(Editor拡張)

 以前作成したポップアップウィンドウ(ポップアップウィンドウの作成)に検索機能を追加しました。

Script

ポップアップウィンドウ

 作成したScriptは以下の通りです。

検索を行うためのキーワードを入力するためのTextFieldを追加しています。EditorGUI.BeginChangeCheck()により、TextFieldの内容が変更された時のみ検索が実行されるようにしています。

始めにEditorGUI.EndChangeCheck()により、TextFiledの内容が変更された時に実行されるようにしています。

次に、search_term != “”によりTextFieldに文字が入力されたか否かを判別します。文字列が入力されていない場合はm_hidden_flagsを全てfalseにすることで、ラジオボタンを全て表示するようにしています。

文字が入力された場合の処理です。各ラジオボタンのラベル(m_button_names)と検索用キーワード(search_term)をそれぞれ、string.ToLower()により全て小文字にしています。これにより、大文字と小文字を区別することなく検索を行うことができます。

string.IndexOf()により、キーワードがラジオボタンのラベルに一致するか否かを判定します。string.IndexOf()は一致する部分がなければ-1を、一致する部分があればその位置を返します。よって、n != -1の場合にm_hidden_flags[i] = falseとし、ラジオボタンを表示するようにすれば、キーワードと一致したラジオボタンのみを表示できます。また、n == 0とすれば、キーワードがラベルの先頭から一致した場合のみ表示するようにできます。

ラジオボタン

 以前作成したラジオボタンへ表示、非表示の機能を追加したラジオボタンのScriptです。

表示するか非表示にするかをhidden_flagsによって受け取ります。そして、非表示とすることを指定されていた場合(true)、continueによりfor文の処理を飛ばすことで非表示にしています。

実行結果

 以上のScriptを実行した結果は以下の通りです。キーワードによりラジオボタンの表示、非表示ができていることが分かります。