private IEnumerator OnCreateNodeDelayCall(ScriptGraphNode node) { yield return(0); // 1フレーム遅らせる _window.scriptGraphAsset.AddNode(ScriptNodeSerializer.Serialize(node)); yield return(null); }
public static ScriptGraphNode Deserialze(ScriptNodeData data) { ScriptGraphNode node = CreateNode(data); if (node == null) { Debug.LogError("node is null. type = " + data.type.ToString()); return(null); } return(node); }
private void Load(ScriptGraphAsset asset) { var tempNodeList = new List <ScriptGraphNode>(asset.list.Count); foreach (var data in asset.list) { ScriptGraphNode node = ScriptNodeDeserializer.Deserialze(data); node.onNodeContentChanged = OnNodeContentChanged; this.AddElement(node); tempNodeList.Add(node); } foreach (ScriptGraphNode nodeLeft in tempNodeList) { int portIndex = 0; for (int i = 0; i < nodeLeft.outIds.Count; ++i) { int outputId = nodeLeft.outIds[i]; if (outputId <= 0) { portIndex++; continue; } foreach (ScriptGraphNode nodeRight in tempNodeList) { if (outputId == nodeRight.id) { Edge edge = new Edge() { output = nodeLeft.outputPorts[portIndex++], input = nodeRight.inputPort }; edge.output.Connect(edge); edge.input.Connect(edge); AddElement(edge); } } } } }
public static ScriptNodeData Serialize(ScriptGraphNode node) { ScriptNodeData data = new ScriptNodeData(); data.id = node.id; data.type = node.Type; data.outIds = node.outIds.ToArray(); data.rect = node.GetPosition(); ByteArrayStream stream = new ByteArrayStream(); switch (node.Type) { case NodeType.Root: break; case NodeType.Message: Serialize(node as MessageNode, ref stream); break; case NodeType.Branch: Serialize(node as BranchNode, ref stream); break; case NodeType.None: default: { Debug.LogError("Invalid Node Type :" + node.Type.ToString()); } break; } data.serialData = stream.GetBuffer(); return(data); }
private void OnNodeContentChanged(ScriptGraphNode node) { _window.scriptGraphAsset.UpdateNode(ScriptNodeSerializer.Serialize(node)); }
private void OnCreatedNode(ScriptGraphNode node) { EditorCoroutineUtility.StartCoroutine(OnCreateNodeDelayCall(node), this); }
private static void SetCommonData(ScriptGraphNode node, ScriptNodeData data) { node.id = data.id; node.outIds.AddRange(data.outIds); node.SetPosition(data.rect); }