using NUnit.Framework; using System; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using UnityEngine.UI.Extensions; using XED.Manage; using XRLib.UI; namespace XED.UI { public class Canvas_Component : CanvasBase { public UILineRenderer prf_LineRenderer; public UILineGroupRenderer groupliner; public void Connect(ConnectionHandlePoint p1, ConnectionHandlePoint p2) { groupliner = FindFirstObjectByType(); groupliner.AddPoints(p1.transform, p2.transform); //var line = Instantiate(prf_LineRenderer, transform); //var p1Pos = new Vector2(p1.transform.position.x + rectTransform.rect.position.x , p1.transform.position.y + rectTransform.rect.position.y); //var p2Pos = new Vector2(p2.transform.position.x + rectTransform.rect.position.x , p2.transform.position.y + rectTransform.rect.position.y); //line.Points = new Vector2[] { p1Pos, p2Pos }; //line.SetAllDirty(); //line.transform.SetAsFirstSibling(); } List<(ConnectionHandlePoint, ConnectionHandlePoint)> connections = new(); List connection = new(); internal void Connect(ConnectionHandlePoint connectionHandlePoint) { connection.Add(connectionHandlePoint); connectionHandlePoint.GetComponent().color = Color.white; if (connection.Count == 2) { connection[0].GetComponent().color = Color.black; connection[1].GetComponent().color = Color.black; if (connections.Contains((connection[0], connection[1]))) { connections.Remove((connection[0], connection[1])); connections.Remove((connection[1], connection[0])); groupliner.Remove(connection[0].transform, connection[1].transform); connection.Clear(); return; } connections.Add((connection[0], connection[1])); connections.Add((connection[1], connection[0])); Connect(connection[0], connection[1]); connection.Clear(); } } } }