// Update is called once per frame void Update() { activeScene = SceneManager.GetActiveScene().name; if (activeScene == "circuitBuilderScene" || activeScene == "circuitBuilderTutorial") { if (circuitBuilder == null) { loadAndPrepScene("circuitBuilderTutorial"); } if (Input.GetMouseButtonDown(1)) { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit2D hit = Physics2D.GetRayIntersection(ray, Mathf.Infinity, circuitBuilder.Mask); if (hit.collider != null && hit.transform.name.EndsWith("(Clone)")) { if (circuitBuilder.SelectedGateCollider == hit.collider) // Right click on a Red Circle to delete a line { Destroy(circuitBuilder.RedCircle); circuitBuilder.RedCircle = null; circuitBuilder.RedCircleHolder = null; circuitBuilder.SelectedGateCollider = null; circuitBuilder.RemoveColliderAndItsPairsFromList(hit.collider); } else if (hit.collider.offset.x == 0) // Right click on a gate's main body to delete it and any connected lines { circuitBuilder.RemoveGateFromList(hit.collider.gameObject); if (circuitBuilder.RedCircleHolder == hit.collider.gameObject) { Destroy(circuitBuilder.RedCircle); circuitBuilder.RedCircle = null; circuitBuilder.RedCircleHolder = null; circuitBuilder.SelectedGateCollider = null; } Destroy(hit.collider.gameObject); } } } } }