/// <summary>
    /// 更新深度Point
    /// </summary>
    public void UpdateDepthPoint()
    {
        //更新父级层级
        if (depth != null)
        {
            depth.Order = mainOrder;
        }
        foreach (Transform item in depth.transform)
        {
            UIDepth depth = item.GetComponent <UIDepth>();
            if (depth)
            {
                if (childItem.Find(x => x.depth == depth) == null)
                {
                    UIDepthPoint uIDepth = new UIDepthPoint()
                    {
                        depth = depth
                    };
                    childItem.Add(uIDepth);
                }
            }
        }

        //用于清空 手动删除的NUll
        for (int i = 0; i < childItem.Count; i++)
        {
            if (childItem[i].depth == null)
            {
                childItem.RemoveAt(i);//清除这个空引用
            }
            else
            {
                childItem[i].mainOrder   = mainOrder + mainOrder;//主节点索引
                childItem[i].depth.Order = mainOrder + mainOrder;
                childItem[i].UpdateDepthPoint();
            }
        }
    }
예제 #2
0
 private void UpdateUIDepthPointGUI(UIDepthPoint point)
 {
     GUILayout.BeginHorizontal(EditorStyles.helpBox);
     GUILayout.BeginHorizontal();
     EditorGUILayout.LabelField("层级", GUILayout.MaxWidth(40));
     GUI.color = Color.red;
     EditorGUILayout.IntField(point.mainOrder, GUILayout.MaxWidth(30));
     GUI.color = Color.white;
     EditorGUILayout.LabelField("ISUI:", GUILayout.MaxWidth(40));
     GUI.color        = point.depth.IsUI? Color.green:Color.red;
     point.depth.IsUI = EditorGUILayout.Toggle(point.depth.IsUI, GUILayout.MaxWidth(20));
     GUI.color        = Color.white;
     EditorGUILayout.LabelField("point:", GUILayout.MaxWidth(40));
     EditorGUILayout.ObjectField(point.depth, typeof(UIDepthPoint), GUILayout.MaxWidth(100));
     GUILayout.EndHorizontal();
     GUILayout.BeginVertical(EditorStyles.helpBox);
     for (int i = 0; i < point.childItem.Count; i++)
     {
         UpdateUIDepthPointGUI(point.childItem[i]);
     }
     GUILayout.EndVertical();
     GUILayout.EndHorizontal();
 }