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); } }
public void setInput(int num, NodeIOElement node) { IOElements[num] = node; }
public void setSelectedIO(NodeIOElement _element) { selectedIO = _element; }
// TODO: Перенести логику выделения из NodeIOElement в эту ф-ю public void selectIO(NodeIOElement _el) { }