public static void RecycleElement(ModelElement mod) { if (mod == null) { return; } mod.SetParent(null); if (mod.Main != null) { long type = mod.data.type; for (int i = 0; i < models.Count; i++) { if (models[i].type == type) { var g = mod.Main; if (models[i].ReCycle(g)) { g.SetActive(false); mod.Context.SetParent(CycleBuffer); mod.Context = null; mod.Main = null; } break; } } } var child = mod.child; for (int i = 0; i < child.Count; i++) { RecycleElement(child[i]); } child.Clear(); }
unsafe public override void Load(FakeStruct fake) { data = *(ElementData *)fake.ip; var buff = fake.buffer; Int16[] coms = buff.GetData(data.coms) as Int16[]; if (coms != null) { for (int i = 0; i < coms.Length; i++) { int index = coms[i]; i++; int type = coms[i]; var fs = buff.GetData(index) as FakeStruct; if (fs != null) { var dc = ModelManagerUI.Load(type); if (dc != null) { dc.Load(fs); components.Add(dc); } } } } Int16[] chi = fake.buffer.GetData(data.child) as Int16[]; if (chi != null) { for (int i = 0; i < chi.Length; i++) { var fs = buff.GetData(chi[i]) as FakeStruct; if (fs != null) { ModelElement model = new ModelElement(); model.Load(fs); model.SetParent(this); //child.Add(model); //model.parent = this; } } } name = buff.GetData(data.name) as string; tag = buff.GetData(data.tag) as string; ModData = fake; }