示例#1
0
    public void Initialize(GraphAsset graphAsset)
    {
        m_GraphAsset = graphAsset;

        VisualElement root = this.rootVisualElement;

        m_Element = new GraphEditorElement(graphAsset);  // アセットを渡す
        root.Add(m_Element);
    }
示例#2
0
    private void OnContextualMenuPopulate(ContextualMenuPopulateEvent evt)
    {
        if (evt.target is NodeElement node)
        {
            evt.menu.AppendAction(
                "Add Edge",
                (DropdownMenuAction menuItem) =>
            {
                m_Active = true;

                // 親をたどってGraphEditorElementを取得する
                m_Graph          = target.GetFirstAncestorOfType <GraphEditorElement>();
                m_ConnectingEdge = m_Graph.CreateEdgeElement(node, menuItem.eventInfo.mousePosition);

                target.CaptureMouse();
            },
                DropdownMenuAction.AlwaysEnabled);
        }
    }
示例#3
0
    private void OnContextualMenuPopulate(ContextualMenuPopulateEvent evt)
    {
        if (evt.target is NodeElement node)
        {
            if (!node.ContainsPoint(node.WorldToLocal(evt.mousePosition)))
            {
                evt.StopImmediatePropagation();
                return;
            }

            evt.menu.AppendAction(
                "Add Edge",
                (DropdownMenuAction menuItem) =>
            {
                m_Active = true;

                m_Graph          = target.GetFirstAncestorOfType <GraphEditorElement>();
                m_ConnectingEdge = m_Graph.CreateEdgeElement(node, menuItem.eventInfo.mousePosition);

                target.CaptureMouse();
            },
                DropdownMenuAction.AlwaysEnabled);
        }
    }