public ConnectionDrawData(string id, SocketHandle port1, SocketHandle port2, UILineRendererWithListener lineRenderer) { this.id = id; this.output = port1; this.input = port2; this.lineRenderer = lineRenderer; }
public void Add(string connId, SocketHandle from, SocketHandle target) { var line = CreateLine(); var trigger = line.gameObject.AddComponent <LinePointerListener>(); trigger.connId = connId; _connections.Add(connId, new ConnectionDrawData(connId, from, target, line)); }
// drawing private void DrawConnection(SocketHandle port1, SocketHandle port2, UILineRendererWithListener lineRenderer) { var pointList = new List <Vector2>(); for (float i = 0; i < vertexCount; i++) { var t = i / vertexCount; pointList.Add(Utility.CubicCurve(GetLocalPoint(port1.handle1.position), GetLocalPoint(port1.handle2.position), GetLocalPoint(port2.handle1.position), GetLocalPoint(port2.handle2.position), t)); } lineRenderer.m_points = pointList.ToArray(); lineRenderer.SetVerticesDirty(); }
private static void DrawDragging(SocketHandle port) { Vector2 localPointerPos; RectTransformUtility.ScreenPointToLocalPointInRectangle(_lineContainer, Input.mousePosition, null, out localPointerPos); _pointerLocator.localPosition = localPointerPos; var pointList = new List <Vector2>(); for (float i = 0; i < 120; i++) { var t = i / 120; pointList.Add(Utility.QuadraticCurve(GetLocalPoint(port.handle1.position), GetLocalPoint(port.handle2.position), GetLocalPoint(_pointerLocator.position), t)); } _lineRenderer.m_points = pointList.ToArray(); _lineRenderer.SetVerticesDirty(); }