示例#1
0
        public static void OnGUI()
        {
            GUILayout.BeginVertical("物品搜索", GUI.skin.window, GUILayout.Height(300), GUILayout.ExpandWidth(true));
            #region 过滤及翻页
            GUILayout.BeginHorizontal(GUI.skin.box);
            //种类
            GUILayout.Label("种类", GUILayout.Width(30));
            selectType = GUILayout.SelectionGrid(selectType, typeStrs, 18);
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal(GUI.skin.box);
            //品级
            GUILayout.Label("品级", GUILayout.Width(30));
            selectQuality = GUILayout.SelectionGrid(selectQuality, qualityStrs, 7, GUILayout.Width(350));
            GUILayout.Space(20);

            //关键词
            GUILayout.Label("关键词", GUILayout.Width(45));
            searchStr = GUILayout.TextField(searchStr, GUILayout.Width(100));
            GUILayout.Space(20);

            //页数
            SearchItems();
            maxPage = ItemList.Count / 30;
            if (ItemList.Count % 30 != 0)
            {
                maxPage++;
            }
            GUILayout.Label($"  第{nowPage + 1}页 共{maxPage}页", GUILayout.Width(100));
            if (GUILayout.Button("上一页", GUILayout.Width(50)))
            {
                nowPage--;
            }
            if (GUILayout.Button("下一页", GUILayout.Width(50)))
            {
                nowPage++;
            }
            if (nowPage < 0)
            {
                nowPage = maxPage - 1;
            }
            if (nowPage >= maxPage)
            {
                nowPage = 0;
            }
            tmpPage = 0;
            tmpShow = 0;
            GUILayout.EndHorizontal();
            #endregion

            //列表
            svPos = GUILayout.BeginScrollView(svPos);
            foreach (var kv in ItemList)
            {
                if (tmpPage < nowPage * 30)
                {
                    tmpPage++;
                    continue;
                }
                tmpShow++;
                GUILayout.BeginHorizontal(GUI.skin.box);
                GUILayout.Label($"{nowPage * 30 + tmpShow}", GUILayout.Width(40));
                GUI.contentColor = ModTool.GetItemQualityColor(kv.Value);
                if (GUILayout.Button(Tools.instance.Code64ToString(kv.Value["name"].str), GUILayout.Width(100)))
                {
                    SelectItem = kv.Value;
                }
                GUI.contentColor = Color.white;
                GUILayout.Label($"{Tools.instance.Code64ToString(kv.Value["desc"].str)}");
                GUILayout.EndHorizontal();
                if (tmpShow >= 30)
                {
                    break;
                }
            }
            GUILayout.EndScrollView();

            GUILayout.EndVertical();
        }