void OnMarkerRemove(List <Marker> markers) { foreach (var m in markers) { BaseMarkerUI ui = mMarkerUIInstance[m.guid]; if (ui) { Destroy(ui.gameObject); } mMarkerUIInstance.Remove(m.guid); } }
void OnMarkerUpdate(List <Marker> markers) { foreach (var m in markers) { if (mMarkerUIInstance.ContainsKey(m.guid)) { BaseMarkerUI ui = mMarkerUIInstance[m.guid]; if (ui) { ui.UpdateUI(); } } } }
//根据marker编码得到ui预设 BaseMarkerUI GetMarkerUIPrefab(int code) { BaseMarkerUI prefab = null; if (mMarkerPrefabs.ContainsKey(code)) { prefab = mMarkerPrefabs[code]; } if (prefab == null) { prefab = defaultUIPrefab; } return(prefab); }
void OnMarkerAdd(List <Marker> markers) { foreach (var m in markers) { BaseMarkerUI prefab = GetMarkerUIPrefab(m.code); if (prefab == null) { continue; } Transform parent = uiRoot != null ? uiRoot.transform : null; GameObject uiObj = Instantiate(prefab.gameObject, parent) as GameObject; if (uiObj == null) { continue; } BaseMarkerUI ui = uiObj.GetComponent <BaseMarkerUI>(); if (ui) { ui.transform.SetParent(parent); ui.InitMarker(m); } mMarkerUIInstance.Add(m.guid, ui); } }