private void CreateDebugRect(CanvasData.Node node, Rect rect) { var scanner = (CanvasScanner)target; var go = DefaultControls.CreateImage(new DefaultControls.Resources()); go.transform.SetParent(scanner.rectContainer, false); // set name go.name = string.Format("NodeRect {0:D}", node.index); var rt = go.transform as RectTransform; // set position rt.anchoredPosition = rect.center; rt.sizeDelta = rect.size; // set color var image = go.GetComponent <Image>(); image.color = scanner.rectColor; }
private void BuildNodes(DataContainer dataContainer) { var scanner = (CanvasScanner)target; // get all items from content node var list = GetPrefabInstanceList(); var nodeList = new List <CanvasData.Node>(); int index = 0; foreach (var item in list) { var nodeRT = item.transform as RectTransform; if (!VerifyTransform(nodeRT)) { continue; } var node = new CanvasData.Node(); // get prefab parent node.prefab = PrefabUtility.GetPrefabParent(item) as GameObject; // get position and size node.anchoredPosition = GetAnchoredPosition(nodeRT, scanner.content); node.sizeDelta = nodeRT.sizeDelta; node.index = index++; // set rotation node.rotation = nodeRT.rotation.eulerAngles.z; // get metadata var metadata = nodeRT.GetComponent <ISerializableCanvasNode>(); if (metadata != null) { // serialize metadata to string node.metadata = metadata.Serialize(); } // add it nodeList.Add(node); // add node rect var rect = GetNodeRect(nodeRT, scanner.content, dataContainer); dataContainer.nodeRectDictionary.Add(node, rect); } if (scanner.generateDebugRect) { foreach (var node in nodeList) { var rect = dataContainer.nodeRectDictionary[node]; CreateDebugRect(node, rect); } } // set data scanner.data.nodeList = nodeList; }