/// <summary> /// 创建子项 /// </summary> public void OnCreateItem() { //如果值没有发生改变,则直接跳过 //删除子项 OnDeleteItem(); //生成子项 foreach (var name in Names) { var go = Instantiate(dropdownItem, gridLayout.transform); go.SetActive(true); var item = go.GetComponent <KGUI_DropdownItem>(); item.OnInitialized(this, name); Items.Add(item); } RectTransform content = gridLayout.GetComponent <RectTransform>(); //设置子项的高度 Vector2 delta = content.sizeDelta; //设置背景框的高度 content.sizeDelta = new Vector2(delta.x, gridLayout.cellSize.y * Names.Count); //因为设置了瞄点,所以需要根据父对象的高度,重新进行Y轴坐标的计算。 float y = content.parent.GetComponent <RectTransform>().sizeDelta.y / 2 - content.sizeDelta.y / 2; content.localPosition = new Vector3(content.localPosition.x, y, content.localPosition.z); //设置滚动数值,自动填充 scrollView.SetRectData(); //没有激活的话,则显示全部 gridLayout.cellSize = new Vector2(gridLayout.GetComponent <RectTransform>().sizeDelta.x, gridLayout.cellSize.y); //设置所有子项的大小 //设置默认参数 for (int i = 0; i < Items.Count; i++) { Items[i].SetItemData(gridLayout.cellSize); //设置默认值 if (i == 0) { Items[i].OnDown(0); //设置被选中状态 } } }
public override void OnInspectorGUI() { GUILayout.BeginVertical("box", GUILayout.Width(500)); EditorGUILayout.PropertyField(vertical, true, null); EditorGUILayout.PropertyField(horizontal, true, null); EditorGUILayout.PropertyField(panel, true, null); EditorGUILayout.PropertyField(content, true, null); GUILayout.Space(20); if (GUILayout.Button("刷新", GUILayout.Width(100), GUILayout.Height(21))) { scrollView.SetRectData(); } GUILayout.EndVertical(); serializedObject.ApplyModifiedProperties(); }
/// <summary> /// 写入数据到表格中 /// </summary> /// <param name="datas">数据</param> /// <param name="i">默认为第一个表格(暂时只记录第一个表格数)</param> public void SetDataToTable(string[] datas, int i = 1) { if (datas == null) { return; } if (index >= tableManager.Tables[i].Rows.Count - 1) { tableManager.AddRow(tableManager.Tables[i]); scrollView.SetRectData(); scrollView.vertical.SetRectData(); } index++; Dictionary <Vector2Int, string> dict = new Dictionary <Vector2Int, string>(); for (int j = 0; j < datas.Length; j++) { dict.Add(new Vector2Int(index, j), datas[j]); } tableManager.AddData(tableManager.Tables[i], dict); }