예제 #1
0
        private static void DrawUIDummyGizmo(UIDummy component, GizmoType gizmoType)
        {
            var gameObject = component?.gameObject;

            if (gameObject == null)
            {
                return;
            }


            if (!(CanvasUtil.TryGetRootCanvas(gameObject, out var canvas) && CanvasUtil.TryGetRectTransform(gameObject, out var rect)))
            {
                return;
            }

            var canvasRect = CanvasUtil.GetCanvasRect(rect);

            var center = canvasRect.Center;
            var mat4x4 = canvas.transform.localToWorldMatrix;

            foreach (var dummy in component.Dummys)
            {
                if (dummy == null)
                {
                    continue;
                }
                Vector3 offset = dummy.Offset;
                DrawDummyCross(mat4x4, center + offset, dummy.AliasName, Color.red);
            }
        }
예제 #2
0
        /// <summary>
        /// 当前选择的对象发生更改
        /// </summary>
        private void SelectionChanged()
        {
            var obj = Selection.activeObject;

            if (!(obj != null &&
                  CanvasUtil.TryGetRectTransform(obj as GameObject, out SelectedUIElement) &&
                  CanvasUtil.TryGetRootCanvas(SelectedUIElement.gameObject, out SelectedRootCanvas) &&
                  SelectedUIElement.gameObject != SelectedRootCanvas.gameObject))
            {
                OnDeselect();
            }
        }
예제 #3
0
        private void ShowPackageMenu()
        {
            var objs = new List <GameObject>();

            Transform parentTrans = null;

            foreach (var obj in Selection.gameObjects)
            {
                if (CanvasUtil.TryGetRectTransform(obj, out var rect))
                {
                    if (parentTrans != null && parentTrans != obj.transform.parent)
                    {
                        EditorUtility.DisplayDialog("出错了", "不能跨节点打包", "好的");
                        return;
                    }

                    parentTrans = obj.transform.parent;
                    objs.Add(obj);
                }
            }

            if (objs.Count <= 0)
            {
                return;
            }

            UIHelperContextMenu.AddItem("打包成原子", false, PackageAtom, objs);
            UIHelperContextMenu.AddItem("打包成模组", false, PackageModule, objs);
            if (objs.Count == 1 && objs[0].transform.childCount > 0)
            {
                UIHelperContextMenu.AddSeparator("");
                UIHelperContextMenu.AddItem("打散", false, Unpack, objs[0]);
            }

            UIHelperContextMenu.Show();
        }