package Ġcom . h ust unique . v live . local Ċ Ċ import Ġandroid . util . Sparse Array Ċ import Ġcom . h ust unique . v live . data . Add Event Ċ import Ġcom . h ust unique . v live . data . Base Event Ċ import Ġcom . h ust unique . v live . data . Event Wrapper Ċ import Ġcom . h ust unique . v live . fil ament . model _ object .* Ċ import Ġcom . h ust unique . v live . util . Thread Util Ċ import Ġcom . h ust unique . v live . util . put If Absent Ċ Ċ /** Ċ Ġ* ĠĠĠ Ġauthor Ġ: ĠY ux uan ĠX iao Ċ Ġ* ĠĠĠ Ġe - mail Ġ: Ġq pal wo @ qq . com Ċ Ġ* ĠĠĠ Ġdate ĠĠ Ġ: Ġ 2 0 2 1 / 5 / 2 7 Ċ Ġ*/ Ċ class ĠUnity Object Manager ( ĊĠĠĠ Ġprivate Ġval Ġadd Obj : Ġ( Fil ament BaseModel Object ) Ġ-> ĠUnit , ĊĠĠĠ Ġprivate Ġval Ġremove Obj : Ġ( Fil ament BaseModel Object ) Ġ-> ĠUnit Ċ ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġobj List Ġ= ĠSparse Array < Fil ament BaseModel Object >() ĊĊĠĠĠ Ġfun Ġon Event ( event : ĠEvent Wrapper ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( event . eventType Ġ== ĠEvent Wrapper . ADD _ TYPE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Action ( event . data List ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( event . eventType Ġ== ĠEvent Wrapper . DELETE _ TYPE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdelete Action ( event . data List ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd Action ( list : ĠList < Base Event >) Ġ{ ĊĠĠĠĠĠĠĠ ĠThread Util . exec Ui Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit Ġas ĠAdd Event ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( obj List . get ( it . id . toInt ()) Ġ?: Ġobj List . put If Absent ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . id . toInt (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( it . type . toInt ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġ-> ĠUnity Cube Model Object () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> ĠUnity Sphere Model Object () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ-> ĠUnity Cy linder Model Object () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 3 Ġ-> ĠUnity Py ramid Model Object () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠUnity Cube Model Object () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Obj ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}). run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( this Ġas ? ĠUnity Model Object )?. set EventData ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdelete Action ( list : ĠList < Base Event >) Ġ{ ĊĠĠĠĠĠĠĠ ĠThread Util . exec Ui Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobj List . get ( it . id . toInt ()) ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġremove Obj ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobj List . remove ( it . id . toInt ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }