Unity で実行時にリストを更新する方法を誰かが説明してくれませんか?
たとえば、3 つの呪文が含まれている呪文の本があります。それらをアクション バーにドラッグすると、親が再設定されます。私がやろうとしているのは、アクションバー トランスフォームの下にある各子のリストを取得することです。
私の問題は、更新で以下のようなことを試した場合、実際にこのようなことをどこで行うかです。更新はすべてのフレームで実行されるため、そこにあるものは何でも追加されます..
list = actionbarui.GetComponent(UIGrid).GetChildList();
for(var i =0;i < list.size; i++)
{
buttonList.Add(list[i].gameObject);
}
ボタンにコールバックを追加すると、ドラッグ アンド ドロップされるたびに上記のコードが実行され、「呪文」を 1 つだけドラッグすると 1 回ループするように加算的に追加されますが、これは問題ありませんが、別のボタンを追加するとすぐに、ループが 3 回繰り返されます。つまり、既に 1 つある場合は、同じボタンに加えて、ドラッグされたばかりの新しいボタンが合計 3 回追加されます。
コードを次のように変更してみました
list = actionbarui.GetComponent(UIGrid).GetChildList();
for each(var child : Transform in list.GetEnumerator())
{
buttonList.Add(child.gameObject);
}
しかし、この単純なことは何も追加しません。リストがドラッグされたりオンになったりするときにリストを更新し続ける方法がわかりません。これがどのように達成されるかを誰か説明してもらえますか?
2 番目の「リスト」コードは無視してください。これは、NGUI の一部として「BetterLists」を実装しているため、標準のリスト メソッドには従いません。
読んでくれてありがとう