/// <summary> /// 通过[ID]二分快速查表 /// </summary> /// <param name="id">ID</param> /// <returns></returns> public static TransferChildTypeDataBase Query(this List <TransferChildTypeDataBase> sorted, uint id) { var key = new TransferChildTypeDataBase() { id = id }; var comparer = new Comparer1(); var index = sorted.BinarySearch(key, comparer); return(index >= 0 ? sorted[index] : default(TransferChildTypeDataBase)); }
void ResetBtnBgPosition(MapBtnType type) { m_ctor_bgContent.SetVisible(true); m_btn_ColliderMask.gameObject.SetActive(true); TransferChildTypeDataBase tab = GameTableManager.Instance.GetTableItem <TransferChildTypeDataBase>((uint)type); if (tab == null) { Engine.Utility.Log.Error("传送表格找不到对应的表格数据ID{0}", (uint)type); return; } mapID.Clear(); mapData.Clear(); string[] ids = tab.MapIDList.Split('_'); uint id = 0; for (int i = 0; i < ids.Length; i++) { if (uint.TryParse(ids[i], out id)) { mapID.Add(id); } } if (mapID.Count == 1) { GotoMap((int)mapID[0]); return; } for (int j = 0; j < mapID.Count; j++) { MapDataBase map = GameTableManager.Instance.GetTableItem <MapDataBase>(mapID[j]); if (map != null) { mapData.Add(map); } } m_ctor_bgContent.CreateGrids(mapData.Count); isShowingGird = true; m_btn_ColliderMask.gameObject.SetActive(true); Vector3 vec = Vector3.zero; switch (type) { case MapBtnType.ChangShengDian: { vec = new Vector3(330, -240, 0); } break; case MapBtnType.JiuYouDiGong: { vec = new Vector3(155, -150, 0); } break; case MapBtnType.WanJieKu: { vec = new Vector3(250, -20, 0); } break; case MapBtnType.WuWangHai: { vec = new Vector3(100, 150, 0); } break; } AdjustBgPosition(vec, mapID.Count); }