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 ++++++++++++++++++++++ .../Assets/Scripts/DrawLine.cs.meta | 11 ++++ 2 files changed, 72 insertions(+) create mode 100644 Pathfinding Visualizer/Assets/Scripts/DrawLine.cs create mode 100644 Pathfinding Visualizer/Assets/Scripts/DrawLine.cs.meta (limited to 'Pathfinding Visualizer/Assets/Scripts') 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(); + } +} diff --git a/Pathfinding Visualizer/Assets/Scripts/DrawLine.cs.meta b/Pathfinding Visualizer/Assets/Scripts/DrawLine.cs.meta new file mode 100644 index 0000000..7a8befc --- /dev/null +++ b/Pathfinding Visualizer/Assets/Scripts/DrawLine.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c528828d28cb9a640b6504b8a7d14007 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: -- cgit v1.3.1-4-g156e