From e7b56ebf9d25978b3aac4a0631d4083fdb2441d1 Mon Sep 17 00:00:00 2001 From: dereelatwit <54997325+dereelatwit@users.noreply.github.com> Date: Mon, 24 Jul 2023 21:33:01 -0400 Subject: Implemented mouse to line drawing --- Pathfinding Visualizer/Assets/Scripts/DrawLine.cs | 61 +++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 Pathfinding Visualizer/Assets/Scripts/DrawLine.cs (limited to 'Pathfinding Visualizer/Assets/Scripts/DrawLine.cs') 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 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(); + edgeCollider = currentLine.GetComponent(); + 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(); + } +} -- cgit v1.3.1-4-g156e