示例#1
0
        private Port InstantiateOutputPort()
        {
            var outputPort = InstantiatePort(Orientation.Horizontal, Direction.Output, Port.Capacity.Single, typeof(float));

            outputPort.portName = string.Empty;

            var selectConditionButton = new Button(() =>
            {
                var searchWindow = ScriptableObject.CreateInstance <ConditionSearchWindow>();
                searchWindow.Init(this, FSMGraphView.AvailableConditions, outputPort, outputContainer.childCount - 1);
                SearchWindow.Open(new SearchWindowContext(), searchWindow);
            })
            {
                text = "Select Condition", name = "Select Condition"
            };

            selectConditionButton.style.backgroundColor = new StyleColor(Color.clear);
            outputPort.contentContainer.Add(selectConditionButton);

            // Delete button
            Button deleteButton = new Button(() =>
            {
                outputPort.RemoveFromHierarchy();
                outputPort.DisconnectAll();
                foreach (var edge in outputPort.connections)
                {
                    edge.input.Disconnect(edge);
                    fsmGraphView.Remove(edge);
                }
            })
            {
                text = "x",
            };

            outputPort.contentContainer.Add(deleteButton);

            return(outputPort);
        }