using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using UnityEngine.EventSystems; public class DrawLine : MonoBehaviour,IPointerClickHandler { RectTransform rt; void Start() { rt = GetComponent(); Vector2 point1 = rt.anchoredPosition + new Vector2(-rt.sizeDelta.x / 2, rt.sizeDelta.y / 2); Vector2 point2 = rt.anchoredPosition + new Vector2(rt.sizeDelta.x / 2, rt.sizeDelta.y / 2); Vector2 point3 = rt.anchoredPosition + new Vector2(-rt.sizeDelta.x / 2, -rt.sizeDelta.y / 2); Vector2 point4 = rt.anchoredPosition + new Vector2(rt.sizeDelta.x / 2, -rt.sizeDelta.y / 2); DrawStraightLine(point1, point2); DrawStraightLine(point2, point4); DrawStraightLine(point3, point4); DrawStraightLine(point3, point1); } void DrawStraightLine(Vector2 a, Vector2 b) { GameObject img = new GameObject(); img.AddComponent(); img.transform.SetParent(transform); img.GetComponent().raycastTarget = false; float distance = Vector2.Distance(a, b); float angle = Vector2.SignedAngle(a - b, Vector2.left); img.GetComponent().anchoredPosition = (a + b) / 2; img.GetComponent().sizeDelta = new Vector2(distance, 5); img.transform.localRotation = Quaternion.AngleAxis(-angle, Vector3.forward); img.GetComponent().color = Color.red; } public void OnPointerClick(PointerEventData eventData) { } }