UI addChildについての仕様を整理する
Opened this issue · 3 comments
Uynet commented
現行:
-
addChildで追加したUIはUIManagerには登録されない
- そのためUpdateするには親UIのUpdate内からchildrenをUpdateする必要がある
- これを毎回確認するのは原始的であるため、いい感じにしたい
-
spriteのchildに登録されるため、親UIを削除すると一緒に消える
-
removeChildはスプライトの参照を削除するのみ
-
UIManager,Drawerのadd/removeを直接経由せず、親UIのスプライトに付随して登録/削除がなされている
-
Updateの継承元にはEventList.Execute()があるが、継承時にこれを忘れず書く必要があるため、いい感じにしたい
- これはアニメーション用にコルーチンを実行する関数 -
影響の出る箇所
- UIManager.Find
- その他、UI内でChildren.ForEachしている所
Uynet commented
問題:各UIにおけるUpdateの仕様が統一されていないため、危険
一度書き出して整理する必要あり
Uynet commented
問題:
Array.remove(独自関数)の際に存在しない要素をremoveしようとしていることが発覚した
Uynet commented
親-子-孫となっている場合
- 子.Remove()が失敗する
- なぜなら子はUIListに登録されていないため- この場合、親.removeChild(子)とすれば成功する
その時の孫の扱いは不明
- この場合、親.removeChild(子)とすれば成功する