public void AddEdge(int beginId, int endId) { Edge newEdge = Instantiate(prefabEdge, Vector3.zero, Quaternion.identity, transform); Node begin = nodes.Find(node => node.Id == beginId); Node end = nodes.Find(node => node.Id == endId); EdgeTag tag = Instantiate(prefabEdgeTag, Vector3.zero, Quaternion.identity, canvas); tag.Initialize(newEdge); newEdge.Initialize(this, edgeIdCount, begin, end, tag); newEdge.BeginPosition = new Vector3(begin.transform.position.x, begin.transform.position.y, 1); newEdge.EndPosition = new Vector3(end.transform.position.x, end.transform.position.y, 1); edges.Add(newEdge); edgeIdCount++; }