public DialogueNode CreateDialogueNode(string nodeName, Vector2 screenPos) { var dialogueNode = DialogueNode.CreateNode(nodeName, nodeName, false); dialogueNode.styleSheets.Add(_nodeUss); var inputPort = GeneratePort(dialogueNode, Direction.Input, Port.Capacity.Multi); inputPort.portName = "Input"; dialogueNode.inputContainer.Add(inputPort); var button = new Button(() => { AddChoicePort(dialogueNode); }) { text = "New Choice" }; dialogueNode.titleButtonContainer.Add(button); var textField = new TextField(string.Empty); textField.RegisterValueChangedCallback(evt => { dialogueNode.DialogueText = evt.newValue; dialogueNode.title = evt.newValue; }); textField.SetValueWithoutNotify(dialogueNode.title); dialogueNode.mainContainer.Add(textField); dialogueNode.RefreshExpandedState(); dialogueNode.RefreshPorts(); dialogueNode.SetPosition(new Rect(screenPos, DefaultNodeSize)); return(dialogueNode); }
private DialogueNode GenerateEntryPointNode() { var node = DialogueNode.CreateNode("Start", "ENTRYPOINT", true); node.SetPosition(new Rect(100, 200, 100, 100)); var generatedPort = GeneratePort(node, Direction.Output); generatedPort.portName = "Next"; node.outputContainer.Add(generatedPort); node.capabilities &= ~Capabilities.Movable; //不可移动 node.capabilities &= ~Capabilities.Deletable; //不可删除 node.RefreshExpandedState(); node.RefreshPorts(); EntryNode = node; return(node); }