private void CreateLine() { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; if (Physics.Raycast(ray, out hit)) { Node node; if ((node = graph.GetNode(hit.point.Vector2(), radius)) == null) { lineRenderer.SetPosition(1, hit.point.Vector2().Vector3()); } else { lineRenderer.SetPosition(1, node.position.Vector3()); } if (Input.GetMouseButtonUp(0)) { if (node == null) { Destroy(lineRenderer.gameObject); } else { graph.AddLine(currentNode, node); } update = DefaultUpdate; } } }
private void DefaultUpdate() { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; int layer = 1 << 6; //layer = ~layer; if (Physics.Raycast(ray, out hit)) { if (hit.transform.tag != "Draw") { return; } if (Input.GetMouseButtonDown(0)) { Node node; if ((node = graph.GetNode(hit.point.Vector2(), radius)) == null) { var n = point.Create(graph.AddNode(hit.point.Vector2())); n.transform.SetParent(graphDomain); nodes.Add(n); } else { currentNode = node; lineRenderer = Instantiate(line, graphDomain) .GetComponent <LineRenderer>(); lineRenderer.positionCount = 2; lineRenderer.SetPosition(0, node.position.Vector3()); update = CreateLine; } } if (Input.GetMouseButton(1)) { Node node; if ((node = graph.GetNode(hit.point.Vector2(), radius)) != null) { palette.ShowPalette(SetColor); currentSetColorNode = node; } else { palette.HidePalette(); } } } }
private void Awake() { graph = new Graph.Graph(); update = DefaultUpdate; }