private GameObject CreateExpernalDeviceCanvas(Util.Device device, GameObject panel) { var canvas = Instantiate(DeviceCanvas); canvas.name = device.Name + "_canvas"; canvas.transform.Find("HiddenName").gameObject.GetComponent <Text>().text = device.Name; var content = canvas.transform.Find("Content"); content.GetComponent <RectTransform>().sizeDelta = new Vector2(content.GetComponent <RectTransform>().sizeDelta.x, panel.GetComponent <RectTransform>().sizeDelta.y + 10); panel.GetComponent <RectTransform>().anchoredPosition = new Vector2(0, -5); panel.transform.Find("MoveBack").gameObject.GetComponent <Button>().interactable = true; panel.transform.Find("MoveBack").gameObject.GetComponent <Button>().onClick.AddListener(delegate { device.SetRotation(false); panel.SetActive(false); panel.transform.SetParent(Content.transform, false); _panelsList.Add(panel); panel.transform.Find("MoveBack").gameObject.GetComponent <Button>().onClick.RemoveAllListeners(); panel.transform.Find("MoveBack").gameObject.GetComponent <Button>().interactable = false; device.IsPlaced = false; PanelBackClick(canvas); }); panel.transform.Find("TapToPlaceButton").gameObject.GetComponent <Button>().onClick.RemoveAllListeners(); panel.transform.Find("TapToPlaceButton").gameObject.GetComponent <Button>().onClick.AddListener(delegate { if (!device.IsPlaced) { EventManager.Instance.RemoveDevice(device.GObject, device.Name); device.SetRotation(true); device.IsPlaced = true; _panelsList.Remove(panel); var newCanvas = CreateExpernalDeviceCanvas(device, panel); PanelPlaceClick(newCanvas); } else { PanelPlaceClick(canvas); } }); panel.transform.SetParent(content.transform, false); //resize content var height = panel.GetComponent <RectTransform>().sizeDelta.y; var size = canvas.GetComponent <RectTransform>().sizeDelta; canvas.GetComponent <RectTransform>().sizeDelta = new Vector2(size.x, height + 10); canvas.GetComponent <BoxCollider>().size = new Vector2(size.x, height); canvas.transform.parent = transform.Find("/Objects"); canvas.SetActive(true); return(canvas); }
public void GetDeviceApiDescription(Util.Device device, Action <List <Util.ApiInfo>, bool> callback) { var url = string.Format("{0}{1}", device.Uri, device.Path); Get(url).SendWebRequest().completed += operation => { var request = ((UnityWebRequestAsyncOperation)operation).webRequest; if (!isError(request)) { var list = JsonConvert.DeserializeObject <List <Util.ApiInfo> >(request.downloadHandler.text); list.ForEach(r => r.GenerateUri(device.Uri)); callback(list, false); } else { callback(null, false); } }; }
private GameObject CreatePanel(Util.Device device, string name) { var panel = Instantiate(DevicePanel); panel.name = name; panel.transform.Find("Text").GetComponent <Text>().text = device.Name; float width = panel.GetComponent <RectTransform>().sizeDelta.x; float height = 0; var buttons = panel.transform.Find("Buttons").gameObject; if (!device.isUpdating) { foreach (var apiInfo in device.ApiInfoList) { var actor = AddActor(apiInfo); actor.transform.SetParent(buttons.transform, false); actor.GetComponent <RectTransform>().anchoredPosition = new Vector2(0, -5 - height); height += 5 + actor.GetComponent <RectTransform>().sizeDelta.y; } } height += 5; buttons.GetComponent <RectTransform>().sizeDelta = new Vector2(buttons.GetComponent <RectTransform>().sizeDelta.x, height); if (device.ApiInfoList.Count == 0) { panel.GetComponent <Image>().color = Color.red; panel.transform.Find("TapToPlaceButton").GetComponent <Button>().interactable = false; var noresponse = Instantiate(NoResponseGameObject); height += 5 + noresponse.GetComponent <RectTransform>().sizeDelta.y; noresponse.name = NoResponseGameObject.name; noresponse.transform.SetParent(panel.transform.Find("Buttons"), false); if (!device.isUpdating) { device.GetApiInformation(); } } panel.GetComponent <RectTransform>().sizeDelta = new Vector2(width, height + 5 + 25); return(panel); }
private GameObject AddPanel(Util.Device device, string name) { var panel = CreatePanel(device, name); panel.transform.Find("TapToPlaceButton").gameObject.GetComponent <Button>().onClick.RemoveAllListeners(); panel.transform.Find("TapToPlaceButton").gameObject.GetComponent <Button>().onClick.AddListener(delegate { if (!device.IsPlaced) { EventManager.Instance.RemoveDevice(device.GObject, device.Name); device.SetRotation(true); device.IsPlaced = true; _panelsList.Remove(panel); var canvas = CreateExpernalDeviceCanvas(device, panel); PanelPlaceClick(canvas); } }); panel.transform.Find("MoveBack").gameObject.GetComponent <Button>().interactable = false; panel.transform.SetParent(Content.transform, false); _panelsList.Add(panel); return(panel); }