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); } }
/// <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(); } }
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(); }