summaryrefslogtreecommitdiff
path: root/Pathfinding Visualizer/Assets/Scripts/DrawLine.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Pathfinding Visualizer/Assets/Scripts/DrawLine.cs')
-rw-r--r--Pathfinding Visualizer/Assets/Scripts/DrawLine.cs61
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();
+ }
+}