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(); } }