###実現したいこと
UnityでInputFieldを用いて、そこに書かれた文字を「ScrollView/Viewport/Content」内の項目のオブジェクトの兄弟間の上下関係を移動させ、表示順を変えています。
とりあえずコードを書いてみたものの、これから項目を増やそうとすると大変で、一つの項目を作るのに5分くらいかかってしまいます。
###コード
c#
1 //Contentオブジェクト内のゲームオブジェクト(=項目) 2 public GameObject Object001, Object002, Object003, Object004, Object005; 3 4 //InputField自体 5 public InputField InputField; 6 7 //InputFieldに書かれた文字 8 public Text InputFieldText; 9 10 private string searchString; 11 12 //InputFieldを書き終えたときに実行 13 public void InputFieldWrote() 14 { 15 searchString = InputFieldText.text; 16 17 //Object001の検索対象は"こんにちは" 18 bool koumoku00101 = searchString.Contains("こ"); 19 if(koumoku00101==true) 20 { 21 Object001.transform.SetSiblingIndex(0); 22 } 23 bool koumoku00102 = searchString.Contains("ん"); 24 if(koumoku00102==true) 25 { 26 Object001.transform.SetSiblingIndex(0); 27 } 28 bool koumoku00103 = searchString.Contains("に"); 29 if(koumoku00103==true) 30 { 31 Object001.transform.SetSiblingIndex(0); 32 } 33 bool koumoku00103 = searchString.Contains("ち"); 34 if(koumoku00103==true) 35 { 36 Object001.transform.SetSiblingIndex(0); 37 } 38 bool koumoku00103 = searchString.Contains("は"); 39 if(koumoku00103==true) 40 { 41 Object001.transform.SetSiblingIndex(0); 42 } 43 44 45 //Object002の検索対象は"こんばんは" 46 bool koumoku00201 = searchString.Contains("こ"); 47 if(koumoku00201==true) 48 { 49 Object002.transform.SetSiblingIndex(0); 50 } 51 bool koumoku00202 = searchString.Contains("ん"); 52 if(koumoku00102==true) 53 { 54 Object002.transform.SetSiblingIndex(0); 55 } 56 bool koumoku00203 = searchString.Contains("ば"); 57 if(koumoku00103==true) 58 { 59 Object002.transform.SetSiblingIndex(0); 60 } 61 bool koumoku00204 = searchString.Contains("ん"); 62 if(koumoku00104==true) 63 { 64 Object002.transform.SetSiblingIndex(0); 65 } 66 bool koumoku00205 = searchString.Contains("は"); 67 if(koumoku00105==true) 68 { 69 Object002.transform.SetSiblingIndex(0); 70 } 71 } 72 73
InputField内に書かれた文字をstring型のsearchStringに代入しています。
例えば、InputFieldに"ば"と入力すると"こんばんは"(=Object002)を最も上に表示させます。
"こん"と入力すれば"こんにちは"(=Object001)と"こんばんは"(=Object002)が最も上に表示されます。
###質問
しかし、上のやり方ですと、これから項目を作っていくときにとても面倒です。
このような物を作りたいのですが、もっとコンパクトにできないでしょうか...
また、このやり方ですとInputFieldに"こんばんは"と検索してもObject001とObject002が移動してしまいます。"こ" と "ん" と "は" が対象になってしまい、関係のないオブジェクトが検索結果の対象になってしまいます。それを対象とせず、うまい具合(検索された文字を検索結果とする)にしたいのですが、そのやり方も教えてください。
どなたか回答お願いします。
回答2件
あなたの回答
tips
プレビュー