public void Updater(Vector2 mousePos) { if (wireRenderer == null) { wireRenderer = GetComponent <LineRenderer>(); } if (clickableArea == null) { clickableArea = GetComponent <EdgeCollider2D>(); } if (connectedPins == 1) { int i = connections[0] == null?1:0; wireRenderer.SetPosition(0, new Vector3(connections[i].transform.position.x, connections[i].transform.position.y, transform.position.z)); wireRenderer.SetPosition(1, new Vector3(mousePos.x, mousePos.y, transform.position.z)); if (Input.GetKeyDown(KeyCode.Escape)) { connections[i].wire = null; Destroy(gameObject); connectedPins--; } if (ToolController.SelectedTool != ToolController.ToolType.WIRE) { connections[i].wire = null; Destroy(gameObject); connectedPins--; } } else if (connectedPins == 2) { Vector3 pos1 = new Vector3(connections[0].transform.position.x, connections[0].transform.position.y, transform.position.z); Vector3 pos2 = new Vector3(connections[1].transform.position.x, connections[1].transform.position.y, transform.position.z); wireRenderer.SetPosition(0, pos1); wireRenderer.SetPosition(1, pos2); clickableArea.points = new Vector2[] { pos1, pos2 }; foreach (var pin in connections) { if (pin.input) { pin.SetState(state); } else { state = pin.GetState(); } } if (Input.GetMouseButtonDown(0) && (ToolController.SelectedTool == ToolController.ToolType.WIRE_CUTTER) && Application.isPlaying) { if (clickableArea.OverlapPoint(mousePosition)) { foreach (var pin in connections) { pin.wire = null; } Destroy(gameObject); } } } }