private Node() { m_NextNodes = new List <Node <T> >(); m_PrevNodes = new List <Node <T> >(); this.RegisterCallback <PointerDownEvent>((a) => { this.BringToFront(); }, TrickleDown.NoTrickleDown); #region 节点顶部 #region 连接点 connectPointIn = new ConnectPoint <T>(this, Point.In); connectPointIn.AddToClassList("connectPoint"); connectPointIn.RegisterCallback <PointerDownEvent>((a) => { a.StopPropagation(); }); connectPointOut = new ConnectPoint <T>(this, Point.Out); connectPointOut.AddToClassList("connectPoint"); connectPointOut.RegisterCallback <PointerDownEvent>((a) => { a.StopPropagation(); }); #endregion Label label = new Label() { text = $"节点", }; label.AddToClassList("text"); VisualElement title = new VisualElement(); title.AddToClassList("title"); title.RegisterCallback <MouseMoveEvent>((a) => { if (isMove) { this.transform.position += (Vector3)a.mouseDelta; } }); title.RegisterCallback <PointerDownEvent>((a) => { isMove = true; }); title.RegisterCallback <PointerUpEvent>((a) => { isMove = false; }); title.RegisterCallback <PointerEnterEvent>((a) => { isMove = false; }); title.Add(connectPointIn); title.Add(label); title.Add(connectPointOut); title.RegisterCallback <MouseDownEvent>((v) => { if (v.button == 0 && v.clickCount == 2) { if (Contains(m_ContentUI)) { Remove(m_ContentUI); } else { Add(m_ContentUI); } } else if (v.button == 1 && v.clickCount == 1) { GenericMenu genericMenu = new GenericMenu(); genericMenu.AddItem(new GUIContent("Delete"), false, Delete); NodeWindow.AddCreateNodeMenu(genericMenu, this.transform.position + new Vector3(150, 60, 0), "Add Next Node", (node) => { AddNextNode(node); }); NodeWindow.AddCreateNodeMenu(genericMenu, this.transform.position - new Vector3(20, 20, 0), "Add Prev Node", (node) => { node.AddNextNode(this); }); genericMenu.ShowAsContext(); } }); #endregion Add(title); }