Uynet/kawasemi

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(子)とすれば成功する
      その時の孫の扱いは不明