Esempio n. 1
0
        /// <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));
        }
Esempio n. 2
0
    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);
    }