public void onClick() { /* ** Если мы выделили 2 IO элемента одного типа (output - output), то переключим выделение ** Иначе создадим связь ** TODO: Сделать создание связи перетаскиванием */ if (SelectionManager.instance.getSelectedIO() != null) { if (SelectionManager.instance.getSelectedIO() == this) { setOutline(false); SelectionManager.instance.setSelectedIO(null); } else { if (SelectionManager.instance.getSelectedIO().getType() == type) { SelectionManager.instance.getSelectedIO().setOutline(false); setOutline(true); SelectionManager.instance.setSelectedIO(this); } else { NodeIOElement el1 = this; NodeIOElement el2 = SelectionManager.instance.getSelectedIO(); // el1 - IN, el2 - OUT if (el1.type == ENodeIOElementType.Output) { NodeIOElement _temp = el1; el1 = el2; el2 = _temp; } el1.parent.GetComponent <Node>().IOElements[el1.getNum()].setLinkedNode(el2.parent.GetComponent <Node>()); GameObject edge = Instantiate(edgeGO); el1.setEdge(edge); el2.edges.Add(edge); edge.GetComponent <LineRenderer>().SetPosition(0, el1.transform.position); edge.GetComponent <LineRenderer>().SetPosition(1, el2.transform.position); SelectionManager.instance.getSelectedIO().setOutline(false); SelectionManager.instance.setSelectedIO(null); } } } else { SelectionManager.instance.setSelectedIO(this); setOutline(true); } }