/// <summary> /// エッジ作成時 /// </summary> /// <param name="edges"></param> private void OnCreatedEdges(List <Edge> edges) { if (edges == null) { return; } foreach (var edge in edges) { var inputNode = edge.input.node as ScriptGraphNode; var outputNode = edge.output.node as ScriptGraphNode; if (outputNode.outIds.Contains(inputNode.id) == false) { int portIndex = (int)edge.output.userData; if (outputNode.outIds.Count <= portIndex) { outputNode.outIds.Insert(portIndex, inputNode.id); } else { outputNode.outIds[portIndex] = inputNode.id; } _window.scriptGraphAsset.UpdateNode(ScriptNodeSerializer.Serialize(outputNode)); } } }
private IEnumerator OnCreateNodeDelayCall(ScriptGraphNode node) { yield return(0); // 1フレーム遅らせる _window.scriptGraphAsset.AddNode(ScriptNodeSerializer.Serialize(node)); yield return(null); }
private void OnMovedElements(List <GraphElement> movedElements) { if (movedElements == null) { return; } foreach (var element in movedElements) { if (element is ScriptGraphNode) { var node = element as ScriptGraphNode; _window.scriptGraphAsset.UpdateNode(ScriptNodeSerializer.Serialize(node)); } } }
private void OnRemovedElements(List <GraphElement> removedElements) { if (removedElements == null) { return; } foreach (var element in removedElements) { if (element is Edge) { var edge = element as Edge; var inputNode = edge.input.node as ScriptGraphNode; var outputNode = edge.output.node as ScriptGraphNode; if (outputNode.outIds.Contains(inputNode.id)) { for (int i = 0; i < outputNode.outIds.Count; ++i) { if (outputNode.outIds[i] == inputNode.id) { outputNode.outIds[i] = 0; break; } } _window.scriptGraphAsset.UpdateNode(ScriptNodeSerializer.Serialize(outputNode)); } } } foreach (var element in removedElements) { if (element is ScriptGraphNode) { var node = element as ScriptGraphNode; _window.scriptGraphAsset.RemoveNode(node.id); } } }
private void OnNodeContentChanged(ScriptGraphNode node) { _window.scriptGraphAsset.UpdateNode(ScriptNodeSerializer.Serialize(node)); }