public static MyPanel TestButton(object test, Sprite sprite, LoadingData data, Sprite backgroundTest) { var headPanel = new MyPanel(sprite, new Rect(0, 0, 0, 0)); Destroy(headPanel.Element.GetComponent<Image>()); headPanel.SetAnchor(new Vector2(0, 0), new Vector2(1, 1)); headPanel.Element.AddComponent<VerticalLayoutGroup>(); var headPanelContentSizeFilter = headPanel.Element.AddComponent<ContentSizeFitter>(); headPanelContentSizeFilter.verticalFit = ContentSizeFitter.FitMode.PreferredSize; if ((test as Folder) != null) { var mainPanel = new MyPanel(sprite, new Rect(0, 0, 0, 0)); Destroy(mainPanel.Element.GetComponent<Image>()); mainPanel.Element.SetActive(((Folder)test).IsOpen); mainPanel.SetAnchor(new Vector2(0, 0), new Vector2(1, 1)); mainPanel.Element.AddComponent<LayoutElement>(); mainPanel.Element.AddComponent<VerticalLayoutGroup>().padding.left = 20; var buttonArea = new MyPanel(sprite, new Rect(0, 0, 0, 0)); UIElement.SetSize(buttonArea.Element.GetComponent<RectTransform>(), new Vector2(60, 32)); buttonArea.SetAnchor(new Vector2(0, 0), new Vector2(1, 1)); buttonArea.Element.AddComponent<HorizontalLayoutGroup>(); var button = new MyButton( () => { mainPanel.Element.SetActive(!mainPanel.Element.activeSelf); ((Folder)test).IsOpen = !((Folder)test).IsOpen; Debug.Log(((Folder)test).Name + " : " + mainPanel.Element.activeSelf); } , sprite, new Rect(0, 0, 0, 0), " <color=#00000060>►</color> " + ((Folder)test).Name); button.Element.AddComponent<LayoutElement>(); var buttonRunTestIn = new MyButton( () => { TestDispatcher.RunAnyTests(((Folder)test).GetChildrenTests().Select(e => e.NameTest), data); foreach(var e in ((Folder)test).GetChildrenTests().Select(e => e.NameTest)) ((Test) test).State = TestDispatcher.LastTestExecution[e] ? 1 : -1; } , sprite, new Rect(0, 0, 0, 0), " <color=#00ff0060>►</color> "); buttonRunTestIn.Element.AddComponent<LayoutElement>(); buttonArea.AddElement(button); buttonArea.AddElement(buttonRunTestIn); button.Element.GetComponentInChildren<Text>().alignment = TextAnchor.MiddleLeft; UIElement.SetSize(button.Element.GetComponent<RectTransform>(), new Vector2(60, 32)); button.SetAnchor(new Vector2(0, 0), new Vector2(1, 1)); var layoutElement = button.Element.AddComponent<LayoutElement>(); layoutElement.minHeight = 30; headPanel.AddElement(buttonArea); foreach (var e in ((Folder)test).GetChildren()) mainPanel.AddElement(TestButton(e, sprite, data, backgroundTest)); headPanel.AddElement(mainPanel); } else { var testName = ((Test)test).NameTest; var button = new MyButton( () => { TestDispatcher.RunOneTest(data, testName); if (TestDispatcher.LastTestExecution.ContainsKey(testName)) if (TestDispatcher.LastTestExecution[testName]) ((Test)test).State = 1; else ((Test)test).State = -1; else ((Test)test).State = 0; ((Test)test).State = TestDispatcher.LastTestExecution[testName] ? 1 : -1; }, sprite, new Rect(0, 0, 0, 0), testName.Split('_').Last()); button.SetAnchor(new Vector2(0, 0), new Vector2(1, 1)); button.Element.AddComponent<LayoutElement>(); var testStateImage = new MyPanel(backgroundTest, new Rect(0, 0, 0, 0)); testStateImage.SetAnchor(new Vector2(0, 0), new Vector2(1, 1)); button.AddElement(testStateImage); testStateImage.Element.transform.SetAsFirstSibling(); //testStateImage.Element.GetComponent<Image>().color = new Color32(0, 0, 0, 100); testStateImage.Element.GetComponent<Image>().color = GetTestColor(testName); button.Element.GetComponent<Button>().onClick.AddListener(() => testStateImage.Element.GetComponent<Image>().color = GetTestColor(testName)); headPanel.AddElement(button); UIElement.SetSize(button.Element.GetComponent<RectTransform>(), new Vector2(60, 32)); button.SetAnchor(new Vector2(0, 0), new Vector2(1, 1)); var layoutElement = button.Element.AddComponent<LayoutElement>(); layoutElement.minHeight = 30; } return headPanel; }
public MyWindow(Sprite sprite, string title, Rect rect) : base() { isOpen = true; Head = new MyPanel(sprite, rect); Head.Element.name = "Window" + title; var trans = Head.Element.GetComponent<RectTransform>(); Head.SetAnchor(new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f)); trans.anchoredPosition3D = new Vector3(0, 0, 0); trans.anchoredPosition = new Vector2(0, 0); trans.localPosition = new Vector3(0, 0, 0); trans.localScale = new Vector3(1, 1, 1); SetSize(trans, rect.size); var header = new MyPanel(sprite, rect); trans = header.Element.GetComponent<RectTransform>(); header.Element.GetComponent<Image>().color = new Color32(230, 230, 230, 200); header.SetAnchor(new Vector2(0, 1), new Vector2(1, 1)); trans.anchoredPosition3D = new Vector3(0, 0, 0); trans.anchoredPosition = new Vector2(0, 0); trans.offsetMin = new Vector2(0, 0); trans.offsetMax = new Vector2(0, 0); trans.localPosition = new Vector3(0, -10, 0); trans.sizeDelta = new Vector2(0, 20); trans.localScale = new Vector3(1, 1, 1); var titleWindow = new MyText(title); header.AddElement(titleWindow); var buttonClosed = new MyButton(() => SetActive(false), sprite, new Rect(0, 0, 64, 48), "X"); var rectButton = buttonClosed.Element.GetComponent<RectTransform>(); buttonClosed.SetAnchor(new Vector2(1, 1), new Vector2(1, 1)); rectButton.sizeDelta = new Vector2(50, 20); rectButton.localPosition = new Vector3(-25, -10, 0); //rectButton.pivot = new Vector2(1, 1); var buttonScript = buttonClosed.Element.GetComponent<Button>(); buttonScript.transition = Selectable.Transition.ColorTint; var selColor = new ColorBlock(); selColor.normalColor = buttonClosed.Element.GetComponent<Button>().colors.normalColor; selColor.pressedColor = new Color32(255, 80, 80, 255); selColor.highlightedColor = new Color32(255, 0, 0, 255); selColor.colorMultiplier = 1; selColor.fadeDuration = 0.2f; buttonClosed.Element.GetComponent<Button>().colors = selColor; Element = new MyPanel(sprite, rect).Element; var transM = Element.GetComponent<RectTransform>(); SetAnchor(new Vector2(0, 0), new Vector2(1, 1)); transM.anchoredPosition3D = new Vector3(0, 0, 0); transM.anchoredPosition = new Vector2(0, 0); transM.sizeDelta = new Vector2(0, 0); transM.localPosition = new Vector3(0, -20, 0); transM.offsetMin = new Vector2(transM.offsetMin.x, 0); transM.localScale = new Vector3(1, 1, 1); header.AddElement(buttonClosed); Head.AddElement(header); Head.AddElement(this); }
void Start() { if (!serverIsRunned) { Server(); serverIsRunned = true; } mainCanvas = new MyCanvas(new Vector2(Screen.width, Screen.height)); MakeState(); windowTests = MakeTests(); windowTests.SetActive(stateMenu.IsOpenTestsWindow); var buttonWindowTests = new MyButton(() => windowTests.SetActive(!windowTests.isOpen), ButtonSprite, new Rect(0, 0, 64, 48), "Tests"); var rectB = buttonWindowTests.Element.GetComponent<RectTransform>(); var inputField = new MyInputField("Input", ButtonSprite, new Rect(0, 0, 160, 25)); buttonWindowTests.SetAnchor(new Vector2(0, 1), new Vector2(0, 1)); var buttonLog = new MyButton( () => Dispatcher.AddRunner(new LogRunner(inputField.Element.GetComponent<InputField>().text)), ButtonSprite, new Rect(0, 0, 64, 48), "Log play"); var rectLog = buttonLog.Element.GetComponent<RectTransform>(); buttonLog.SetAnchor(0, 0, 0, 0); rectLog.anchoredPosition = new Vector2(300, 40); rectB.offsetMin = new Vector2(100, -200); UIElement.SetSize(rectB, new Vector2(120, 30)); var buttonTutorial = new MyButton( () => Dispatcher.AddRunner(new TutorialRunner(new LoadingData { AssemblyName = "RoboMovies", Level = "Test" })), ButtonSprite, new Rect(0, 00, 120, 48), "Tutorial"); buttonTutorial.SetAnchor(new Vector2(0, 1), new Vector2(0, 1)); rectB = buttonTutorial.Element.GetComponent<RectTransform>(); rectB.offsetMin = new Vector2(100, -300); UIElement.SetSize(rectB, new Vector2(120, 30)); dropDownListAssembly = Instantiate(DropDownList); dropDownListAssembly.name = "BambaLeilo"; dropDownListAssembly.transform.localPosition = new Vector3(0, 0); var dropDown = dropDownListAssembly.GetComponent<Dropdown>(); dropDown.GetComponent<RectTransform>().position = new Vector3(0, 0, 0); dropDown.options = new List<Dropdown.OptionData>(); foreach (var e in Dispatcher.Loader.Levels.Keys) dropDown.options.Add(new Dropdown.OptionData(e)); for (var i = 0; i < dropDown.options.Count; i++) if (dropDown.options[i].text == stateMenu.CurrentAssembly) dropDown.value = i; dropDownListLevel = Instantiate(DropDownList); dropDownListLevel.name = "BambaLeiloLevel"; dropDownListLevel.transform.localPosition = new Vector3(0, 0); var dropDownList = dropDownListLevel.GetComponent<Dropdown>(); dropDownList.GetComponent<RectTransform>().position = new Vector3(0, 0, 0); dropDownList.options = new List<Dropdown.OptionData>(); foreach (var e in Dispatcher.Loader.Levels[stateMenu.CurrentAssembly].Keys) dropDownList.options.Add(new Dropdown.OptionData(e)); for (var i = 0; i < dropDownList.options.Count; i++) if (dropDownList.options[i].text == stateMenu.CurrentLevel) { dropDownList.value = i; dropDownList.options[i] = new Dropdown.OptionData(stateMenu.CurrentLevel); } var backGround = new MyImage(menuBackground, new Rect(0, 0, menuBackground.textureRect.width, menuBackground.textureRect.height)); mainCanvas.AddElement(backGround); mainCanvas.AddElement(inputField); mainCanvas.AddElement(windowTests.Head); mainCanvas.AddElement(buttonWindowTests); mainCanvas.AddElement(buttonTutorial); mainCanvas.AddElement(buttonLog); dropDownListLevel.transform.SetParent(mainCanvas.Element.transform); dropDown.transform.SetParent(mainCanvas.Element.transform); var rectDrop = dropDownListAssembly.GetComponent<RectTransform>(); rectDrop.anchorMin = new Vector2(0, 1); rectDrop.anchorMax = new Vector2(0, 1); rectDrop.anchoredPosition = new Vector3(100, -40, 0); rectDrop = dropDownListLevel.GetComponent<RectTransform>(); rectDrop.anchorMin = new Vector2(0, 1); rectDrop.anchorMax = new Vector2(0, 1); rectDrop.anchoredPosition = new Vector3(300, -40, 0); rectDrop = inputField.Element.GetComponent<RectTransform>(); inputField.SetAnchor(0, 0, 0, 0); rectDrop.anchoredPosition = new Vector3(100, 40, 0); }
void Start() { Dispatcher.RoundStart(); timeOnStartSession = Time.fixedTime; curWorldTime = 0; Behaviour = this; CameraCreator(); ScoresFieldsCreator(); var mainCanvas = new MyCanvas(new Vector2(Screen.width, Screen.height)); var buttonGO = new MyButton(() => Dispatcher.SetGameOver(), button, new Rect(100, -100, 100, 30), "Back to menu"); buttonGO.SetAnchor(new Vector2(0,1), new Vector2(0, 1)); mainCanvas.AddElement(buttonGO); world = Dispatcher.CurrentRunner.World; if (world != null) Debugger.Log(DebuggerMessageType.Unity, "World loaded"); else Debugger.Log(DebuggerMessageType.Unity, "Fail. World not loaded"); CollisionInfo = new Tuple<string, string, int>(null, null, 0); Time.timeScale = 1; // вот почему так? //в момент повторного запуска время уже не нулевое }