diff options
Diffstat (limited to 'Pathfinding Visualizer/Assets/Scripts/DrawLine.cs')
| -rw-r--r-- | Pathfinding Visualizer/Assets/Scripts/DrawLine.cs | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/Pathfinding Visualizer/Assets/Scripts/DrawLine.cs b/Pathfinding Visualizer/Assets/Scripts/DrawLine.cs new file mode 100644 index 0000000..e3b2e47 --- /dev/null +++ b/Pathfinding Visualizer/Assets/Scripts/DrawLine.cs @@ -0,0 +1,61 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class DrawLine : MonoBehaviour +{ + + public GameObject linePrefab; + public GameObject currentLine; + + public LineRenderer lineRenderer; + public EdgeCollider2D edgeCollider; + public List<Vector2> fingerPositions; + + + + // Start is called before the first frame update + void Start() + { + + } + + // Update is called once per frame + void Update() + { + if (Input.GetMouseButtonDown(0)) + { + CreateLine(); + } + + if (Input.GetMouseButton(0)) + { + Vector2 tempFingerPos = Camera.main.ScreenToWorldPoint(Input.mousePosition); + if (Vector2.Distance(tempFingerPos, fingerPositions[fingerPositions.Count - 1]) > .1f) + { + UpdateLine(tempFingerPos); + } + } + } + + void CreateLine() + { + currentLine = Instantiate(linePrefab, Vector3.zero, Quaternion.identity); + lineRenderer = currentLine.GetComponent<LineRenderer>(); + edgeCollider = currentLine.GetComponent<EdgeCollider2D>(); + fingerPositions.Clear(); + fingerPositions.Add(Camera.main.ScreenToWorldPoint(Input.mousePosition)); + fingerPositions.Add(Camera.main.ScreenToWorldPoint(Input.mousePosition)); + lineRenderer.SetPosition(0, fingerPositions[0]); + lineRenderer.SetPosition(1, fingerPositions[1]); + edgeCollider.points = fingerPositions.ToArray(); + + } + void UpdateLine(Vector2 newFingerPos) + { + fingerPositions.Add(newFingerPos); + lineRenderer.positionCount++; + lineRenderer.SetPosition(lineRenderer.positionCount - 1, newFingerPos); + edgeCollider.points = fingerPositions.ToArray(); + } +} |
