Ejemplo n.º 1
0
        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;
                }
            }
        }
Ejemplo n.º 2
0
        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();
                    }
                }
            }
        }
Ejemplo n.º 3
0
 private void Awake()
 {
     graph  = new Graph.Graph();
     update = DefaultUpdate;
 }