Exemple #1
0
        public static GameObject CreateText(DefaultControls.Resources resources, int fontSize)
        {
            GameObject go = UGUITools.CreateUIElementRoot("Text", UGUITools.s_ThickElementSize);

            Text lbl = go.AddComponent <Text>();

            lbl.text            = "New Text";
            lbl.fontSize        = fontSize;
            lbl.raycastTarget   = false;
            lbl.supportRichText = false;
            UGUITools.SetDefaultTextValues(lbl);

            return(go);
        }
Exemple #2
0
        /// <summary>
        /// Create Date Picker
        /// </summary>
        public static GameObject CreateDatePicker(Resources resources)
        {
            DefaultControls.Resources res = convertToDefaultResources(resources);
            // Create date picker
            GameObject datePicker = DefaultControls.CreateImage(res);

            datePicker.name = "DatePicker";
            datePicker.AddComponent <DatePicker>();
            RectTransform pickerRect = datePicker.GetComponent <RectTransform>();

            pickerRect.sizeDelta = _defaultDatePickerSize;

            // Create date text
            GameObject dateText = DefaultControls.CreateText(res);

            dateText.name = "DateText";
            SetParentAndAlign(dateText, datePicker.transform);
            RectTransform textRect = dateText.GetComponent <RectTransform>();

            textRect.anchorMin = Vector2.zero;
            textRect.anchorMax = new Vector2(0, 1);
            textRect.pivot     = new Vector2(0, 0.5f);
            textRect.sizeDelta = new Vector2(150, 0);
            Text textText = dateText.GetComponent <Text>();

            textText.text      = System.DateTime.Today.ToShortDateString();
            textText.alignment = TextAnchor.MiddleLeft;

            // Create pick button
            GameObject pickButton = DefaultControls.CreateImage(res);

            pickButton.name = "PickButton";
            SetParentAndAlign(pickButton, datePicker.transform);
            pickButton.AddComponent <Button>();
            RectTransform buttonRect = pickButton.GetComponent <RectTransform>();

            buttonRect.anchorMin = new Vector2(1, 0);
            buttonRect.anchorMax = Vector2.one;
            buttonRect.sizeDelta = new Vector2(_defaultDatePickerSize.y, 0);
            pickButton.GetComponent <Image>().sprite = res.dropdown;
            buttonRect.transform.localPosition      -= new Vector3(_defaultDatePickerSize.y / 2, 0, 0);

            //Create Calendar
            GameObject calendar = CreateCalendar(resources);

            calendar.transform.SetParent(datePicker.transform);
            calendar.transform.localPosition -= new Vector3(0, _defaultDatePickerSize.y / 2 + _defaultCalendarSize.y / 2, 0);
            calendar.SetActive(false);
            return(datePicker);
        }
Exemple #3
0
        public static void Init()
        {
            if (_initCalled)
            {
                return;
            }
            _initCalled        = true;
            Resource.Namespace = Assembly.GetExecutingAssembly().GetName().Name;
            AssetBundle bundle = AssetBundle.LoadFromMemory(Resource.DefaultResourceKOI);

            foreach (Sprite sprite in bundle.LoadAllAssets <Sprite>())
            {
                switch (sprite.name)
                {
                case "Background":
                    backgroundSprite = sprite;
                    break;

                case "UISprite":
                    standardSprite = sprite;
                    break;

                case "InputFieldBackground":
                    inputFieldBackground = sprite;
                    break;

                case "Knob":
                    knob = sprite;
                    break;

                case "Checkmark":
                    checkMark = sprite;
                    break;

                case "DropdownArrow":
                    dropdownArrow = sprite;
                    break;

                case "UIMask":
                    mask = sprite;
                    break;
                }
            }
            defaultFont = Resources.GetBuiltinResource <Font>("Arial.ttf");
            resources   = new DefaultControls.Resources {
                background = backgroundSprite, checkmark = checkMark, dropdown = dropdownArrow, inputField = inputFieldBackground, knob = knob, mask = mask, standard = standardSprite
            };
            defaultFontSize = 16;
            bundle.Unload(false);
        }
        public static GameObject CreateSlider(DefaultControls.Resources resources)
        {
            GameObject uiElementRoot = DefaultControls.CreateUIElementRoot("Slider", DefaultControls.s_ThinElementSize);
            GameObject uiObject1     = DefaultControls.CreateUIObject("Background", uiElementRoot);
            GameObject uiObject2     = DefaultControls.CreateUIObject("Fill Area", uiElementRoot);
            GameObject uiObject3     = DefaultControls.CreateUIObject("Fill", uiObject2);
            GameObject uiObject4     = DefaultControls.CreateUIObject("Handle Slide Area", uiElementRoot);
            GameObject uiObject5     = DefaultControls.CreateUIObject("Handle", uiObject4);
            Image      image1        = uiObject1.AddComponent <Image>();

            image1.sprite = resources.background;
            image1.type   = Image.Type.Sliced;
            image1.color  = DefaultControls.s_DefaultSelectableColor;
            RectTransform component1 = uiObject1.GetComponent <RectTransform>();

            component1.anchorMin = new Vector2(0.0f, 0.25f);
            component1.anchorMax = new Vector2(1f, 0.75f);
            component1.sizeDelta = new Vector2(0.0f, 0.0f);
            RectTransform component2 = uiObject2.GetComponent <RectTransform>();

            component2.anchorMin        = new Vector2(0.0f, 0.25f);
            component2.anchorMax        = new Vector2(1f, 0.75f);
            component2.anchoredPosition = new Vector2(-5f, 0.0f);
            component2.sizeDelta        = new Vector2(-20f, 0.0f);
            Image image2 = uiObject3.AddComponent <Image>();

            image2.sprite = resources.standard;
            image2.type   = Image.Type.Sliced;
            image2.color  = DefaultControls.s_DefaultSelectableColor;
            uiObject3.GetComponent <RectTransform>().sizeDelta = new Vector2(10f, 0.0f);
            RectTransform component3 = uiObject4.GetComponent <RectTransform>();

            component3.sizeDelta = new Vector2(-20f, 0.0f);
            component3.anchorMin = new Vector2(0.0f, 0.0f);
            component3.anchorMax = new Vector2(1f, 1f);
            Image image3 = uiObject5.AddComponent <Image>();

            image3.sprite = resources.knob;
            image3.color  = DefaultControls.s_DefaultSelectableColor;
            uiObject5.GetComponent <RectTransform>().sizeDelta = new Vector2(20f, 0.0f);
            Slider slider = uiElementRoot.AddComponent <Slider>();

            slider.fillRect      = uiObject3.GetComponent <RectTransform>();
            slider.handleRect    = uiObject5.GetComponent <RectTransform>();
            slider.targetGraphic = (Graphic)image3;
            slider.direction     = Slider.Direction.LeftToRight;
            DefaultControls.SetDefaultColorTransitionValues((Selectable)slider);
            return(uiElementRoot);
        }
Exemple #5
0
    protected void UpdateQuadImage(string m_OutputText)
    {
        m_ImagesVertexIndex.Clear();
        foreach (Match match in s_ImageRegex.Matches(m_OutputText))
        {
            var picIndex = match.Index;
            var endIndex = picIndex * 4 + 3;
            m_ImagesVertexIndex.Add(endIndex);

            m_ImagesPool.RemoveAll(image => image == null);
            if (m_ImagesPool.Count == 0)
            {
                GetComponentsInChildren <Image>(m_ImagesPool);
            }
            if (m_ImagesVertexIndex.Count > m_ImagesPool.Count)
            {
                var resources = new DefaultControls.Resources();
                var go        = DefaultControls.CreateImage(resources);
                go.layer = gameObject.layer;
                var rt = go.transform as RectTransform;
                if (rt)
                {
                    rt.SetParent(rectTransform);
                    rt.localPosition = Vector3.zero;
                    rt.localRotation = Quaternion.identity;
                    rt.localScale    = Vector3.one;
                }
                m_ImagesPool.Add(go.GetComponent <Image>());
            }

            var spriteName = match.Groups[1].Value;
            var size       = float.Parse(match.Groups[2].Value);
            var img        = m_ImagesPool[m_ImagesVertexIndex.Count - 1];
            if (img.sprite == null || img.sprite.name != spriteName)
            {
                StartCoroutine(LoadSprite("Art/UI/DynamicTex/" + spriteName + ".png", img));
            }
            img.rectTransform.sizeDelta = new Vector2(size, size);
            img.enabled = true;
        }

        for (var i = m_ImagesVertexIndex.Count; i < m_ImagesPool.Count; i++)
        {
            if (m_ImagesPool[i])
            {
                m_ImagesPool[i].enabled = false;
            }
        }
    }
        private static void Postfix(ref FejdStartup __instance)
        {
            // logo
            if (Configuration.Current.ValheimPlus.IsEnabled && Configuration.Current.ValheimPlus.mainMenuLogo)
            {
                GameObject logo = GameObject.Find("LOGO");
                logo.GetComponent <Image>().sprite = VPlusMainMenu.VPlusLogoSprite;
            }

            // version text for bottom right of startup
            __instance.m_versionLabel.fontSize = 14;
            string gameVersion = Version.CombineVersion(global::Version.m_major, global::Version.m_minor, global::Version.m_patch);

            __instance.m_versionLabel.text = "version " + gameVersion + "\n" + "ValheimPlus " + ValheimPlusPlugin.version;


            if (Configuration.Current.ValheimPlus.IsEnabled && Configuration.Current.ValheimPlus.serverBrowserAdvertisement)
            {
                DefaultControls.Resources uiResources = new DefaultControls.Resources();
                GameObject joinpanel = GameObjectAssistant.GetChildComponentByName <Transform>("JoinPanel", __instance.m_startGamePanel).gameObject;
                if (joinpanel)
                {
                    foreach (Transform panel in joinpanel.transform)
                    {
                        if (panel.gameObject.name == "Server help")
                        {
                            GameObject serverHelpObj = panel.gameObject;
                            GameObject banner        = GameObject.Instantiate(serverHelpObj);
                            banner.transform.SetParent(joinpanel.transform, false);
                            banner.transform.localPosition = banner.transform.localPosition + new Vector3(0, -300);
                            banner.GetComponent <RectTransform>().sizeDelta         = new Vector2(315, 315);
                            banner.transform.GetChild(0).GetComponent <Text>().text = "";
                            banner.transform.GetChild(1).gameObject.SetActive(false);
                            GameObject bannerButton = DefaultControls.CreateButton(uiResources);
                            bannerButton.transform.SetParent(banner.transform, false);
                            bannerButton.GetComponentInChildren <Text>().text     = "";
                            bannerButton.GetComponent <RectTransform>().sizeDelta = new Vector2(315, 315);
                            bannerButton.GetComponent <Button>().image.sprite     = VPlusMainMenu.VPlusBannerSprite;
                            bannerButton.GetComponent <Button>().transition       = Selectable.Transition.SpriteSwap;
                            SpriteState ss = new SpriteState();
                            ss.highlightedSprite = VPlusMainMenu.VPlusBannerHoverSprite;
                            bannerButton.GetComponent <Button>().spriteState = ss;
                            bannerButton.GetComponent <Button>().onClick.AddListener(delegate { Application.OpenURL("http://zap-hosting-banner.valheim.plus"); });
                        }
                    }
                }
            }
        }
        public static GameObject CreatePanel(DefaultControls.Resources resources)
        {
            GameObject    uiElementRoot = DefaultControls.CreateUIElementRoot("Panel", DefaultControls.s_ThickElementSize);
            RectTransform component     = uiElementRoot.GetComponent <RectTransform>();

            component.anchorMin        = Vector2.zero;
            component.anchorMax        = Vector2.one;
            component.anchoredPosition = Vector2.zero;
            component.sizeDelta        = Vector2.zero;
            Image image = uiElementRoot.AddComponent <Image>();

            image.sprite = resources.background;
            image.type   = Image.Type.Sliced;
            image.color  = DefaultControls.s_PanelColor;
            return(uiElementRoot);
        }
    public static GameObject CreateDoubleClickButton(DefaultControls.Resources resources)
    {
        GameObject btn = DefaultControls.CreateButton(resources);

        btn.name = "DoubleClickButton";
        btn.transform.Find("Text").GetComponent <Text>().text = "DoubleClickButton";

        Image image = btn.GetComponent <Image>();

        image.sprite = resources.standard;
        image.type   = Image.Type.Sliced;

        Object.DestroyImmediate(btn.GetComponent <Button>());
        btn.AddComponent <DoubleClickButton>();
        return(btn);
    }
Exemple #9
0
        static UIUtility()
        {
            AssetBundle bundle = AssetBundle.LoadFromMemory(Resource.DefaultResources);

            var sprites = bundle.LoadAllAssets <Sprite>();

            for (var i = 0; i < sprites.Length; i++)
            {
                Sprite sprite = sprites[i];
                switch (sprite.name)
                {
                case "Background":
                    backgroundSprite = sprite;
                    break;

                case "UISprite":
                    standardSprite = sprite;
                    break;

                case "InputFieldBackground":
                    inputFieldBackground = sprite;
                    break;

                case "Knob":
                    knob = sprite;
                    break;

                case "Checkmark":
                    checkMark = sprite;
                    break;

                case "DropdownArrow":
                    dropdownArrow = sprite;
                    break;

                case "UIMask":
                    mask = sprite;
                    break;
                }
            }
            defaultFont = Resources.GetBuiltinResource <Font>("Arial.ttf");
            resources   = new DefaultControls.Resources {
                background = backgroundSprite, checkmark = checkMark, dropdown = dropdownArrow, inputField = inputFieldBackground, knob = knob, mask = mask, standard = standardSprite
            };
            defaultFontSize = 16;
            bundle.Unload(false);
        }
    private void CreateText(int x, int y, string text_to_print)
    {
        DefaultControls.Resources uiResources = new DefaultControls.Resources();
        GameObject uiText = DefaultControls.CreateText(uiResources);

        uiText.transform.SetParent(canvas_transform, false);
        uiText.transform.GetComponent <Text>().font = scoreFont;

        RectTransform trans = uiText.GetComponent <RectTransform>();

        trans.anchoredPosition = new Vector2(x, y);

        Text text = uiText.GetComponent <Text>();

        text.fontSize = 15;
        text.text     = text_to_print;
    }
Exemple #11
0
    public static int constructor(IntPtr l)
    {
        int result;

        try
        {
            DefaultControls.Resources resources = default(DefaultControls.Resources);
            LuaObject.pushValue(l, true);
            LuaObject.pushValue(l, resources);
            result = 2;
        }
        catch (Exception e)
        {
            result = LuaObject.error(l, e);
        }
        return(result);
    }
Exemple #12
0
        public static GameObject CreateColorPicker(DefaultControls.Resources resources)
        {
            GameObject parent = Selection.activeGameObject;

            ColorPicker colorPicker = DefaultControls.CreateRawImage(resources).AddComponent <ColorPicker>();

            colorPicker.gameObject.name = "ColorPicker";
            colorPicker.transform.SetParent(parent.transform, false);
            colorPicker.transform.localPosition = Vector3.zero;
            Material colorPickerMaterial = new Material(Shader.Find("UI/ColorPicker/ColorPicker"));

            colorPicker.GetComponent <RawImage>().material = colorPickerMaterial;

            GameObject colorKnob = CreateKnob(resources);

            colorKnob.transform.SetParent(colorPicker.transform, false);
            colorKnob.transform.RectTransform().anchorMax        = Vector2.zero;
            colorKnob.transform.RectTransform().anchorMin        = Vector2.zero;
            colorKnob.transform.RectTransform().anchoredPosition = Vector2.zero;

            GameObject huePicker = DefaultControls.CreateRawImage(resources);

            huePicker.name = "HuePicker";
            huePicker.transform.SetParent(colorPicker.transform, false);
            huePicker.transform.RectTransform().sizeDelta        = huePicker.transform.RectTransform().sizeDelta.WithY(10);
            huePicker.transform.RectTransform().anchorMax        = new Vector2(0.5f, 0f);
            huePicker.transform.RectTransform().anchorMin        = new Vector2(0.5f, 0f);
            huePicker.transform.RectTransform().anchoredPosition = Vector2.zero;
            huePicker.transform.RectTransform().pivot            = new Vector2(0.5f, 1f);
            Material huePickerMaterial = new Material(Shader.Find("UI/ColorPicker/HuePicker"));

            huePicker.GetComponent <RawImage>().material = huePickerMaterial;

            GameObject hueKnob = CreateKnob(resources);

            hueKnob.transform.SetParent(huePicker.transform, false);
            hueKnob.transform.RectTransform().anchorMax        = new Vector2(0f, 0.5f);
            hueKnob.transform.RectTransform().anchorMin        = new Vector2(0f, 0.5f);
            hueKnob.transform.RectTransform().anchoredPosition = Vector2.zero;
            hueKnob.GetComponent <Knob>().vertical = false;

            colorPicker.knob    = colorKnob.GetComponent <Knob>();
            colorPicker.hueKnob = hueKnob.GetComponent <Knob>();

            return(colorPicker.gameObject);
        }
Exemple #13
0
        void DisposeEmoji()
        {
            _imagesVertexIndexs.Clear();
            foreach (Match match in EmojiRegex.Matches(_outputText))
            {
                string spriteName = string.Copy(match.Groups[1].Value);

                int startIndex = match.Index * 4;
                int endIndex   = (match.Index + match.Value.Length) * 4 - 1;
                _imagesVertexIndexs.Add(new ImageVertexIndex(startIndex, endIndex));

                m_ImagesPool.RemoveAll(image => image == null);
                if (m_ImagesPool.Count == 0)
                {
                    GetComponentsInChildren <Image>(m_ImagesPool);
                }
                if (_imagesVertexIndexs.Count > m_ImagesPool.Count)
                {
                    var resources = new DefaultControls.Resources();
                    var go        = DefaultControls.CreateImage(resources);
                    go.layer = gameObject.layer;
                    var rt = go.transform as RectTransform;
                    if (rt)
                    {
                        rt.SetParent(rectTransform);
                        //rt.localPosition = Vector3.zero;
                        //rt.localRotation = Quaternion.identity;
                        //rt.localScale = Vector3.one;
                    }
                    m_ImagesPool.Add(go.GetComponent <Image>());
                }

                var img = m_ImagesPool[_imagesVertexIndexs.Count - 1];
                img.sprite = LoadFace(spriteName);
                img.rectTransform.sizeDelta = new Vector2(_emojiSize, _emojiSize);
                img.enabled = true;
            }
            for (var i = _imagesVertexIndexs.Count; i < m_ImagesPool.Count; i++)
            {
                if (m_ImagesPool[i])
                {
                    m_ImagesPool[i].enabled = false;
                }
            }
        }
        public static GameObject CreateToggle(DefaultControls.Resources resources)
        {
            GameObject uiElementRoot = DefaultControls.CreateUIElementRoot("Toggle", DefaultControls.s_ThinElementSize);
            GameObject uiObject1     = DefaultControls.CreateUIObject("Background", uiElementRoot);
            GameObject uiObject2     = DefaultControls.CreateUIObject("Checkmark", uiObject1);
            GameObject uiObject3     = DefaultControls.CreateUIObject("Label", uiElementRoot);
            Toggle     toggle        = uiElementRoot.AddComponent <Toggle>();

            toggle.isOn = true;
            Image image1 = uiObject1.AddComponent <Image>();

            image1.sprite = resources.standard;
            image1.type   = Image.Type.Sliced;
            image1.color  = DefaultControls.s_DefaultSelectableColor;
            Image image2 = uiObject2.AddComponent <Image>();

            image2.sprite = resources.checkmark;
            Text lbl = uiObject3.AddComponent <Text>();

            lbl.text = "Toggle";
            DefaultControls.SetDefaultTextValues(lbl);
            toggle.graphic       = (Graphic)image2;
            toggle.targetGraphic = (Graphic)image1;
            DefaultControls.SetDefaultColorTransitionValues((Selectable)toggle);
            RectTransform component1 = uiObject1.GetComponent <RectTransform>();

            component1.anchorMin        = new Vector2(0.0f, 1f);
            component1.anchorMax        = new Vector2(0.0f, 1f);
            component1.anchoredPosition = new Vector2(10f, -10f);
            component1.sizeDelta        = new Vector2(20f, 20f);
            RectTransform component2 = uiObject2.GetComponent <RectTransform>();

            component2.anchorMin        = new Vector2(0.5f, 0.5f);
            component2.anchorMax        = new Vector2(0.5f, 0.5f);
            component2.anchoredPosition = Vector2.zero;
            component2.sizeDelta        = new Vector2(20f, 20f);
            RectTransform component3 = uiObject3.GetComponent <RectTransform>();

            component3.anchorMin = new Vector2(0.0f, 0.0f);
            component3.anchorMax = new Vector2(1f, 1f);
            component3.offsetMin = new Vector2(23f, 1f);
            component3.offsetMax = new Vector2(-5f, -2f);
            return(uiElementRoot);
        }
        public static GameObject CreateInputField(DefaultControls.Resources resources)
        {
            GameObject uiElementRoot = DefaultControls.CreateUIElementRoot("InputField", DefaultControls.s_ThickElementSize);
            GameObject uiObject1     = DefaultControls.CreateUIObject("Placeholder", uiElementRoot);
            GameObject uiObject2     = DefaultControls.CreateUIObject("Text", uiElementRoot);
            Image      image         = uiElementRoot.AddComponent <Image>();

            image.sprite = resources.inputField;
            image.type   = Image.Type.Sliced;
            image.color  = DefaultControls.s_DefaultSelectableColor;
            InputField inputField = uiElementRoot.AddComponent <InputField>();

            DefaultControls.SetDefaultColorTransitionValues((Selectable)inputField);
            Text lbl = uiObject2.AddComponent <Text>();

            lbl.text            = string.Empty;
            lbl.supportRichText = false;
            DefaultControls.SetDefaultTextValues(lbl);
            Text text = uiObject1.AddComponent <Text>();

            text.text      = "Enter text...";
            text.fontStyle = FontStyle.Italic;
            Color color = lbl.color;

            color.a   *= 0.5f;
            text.color = color;
            RectTransform component1 = uiObject2.GetComponent <RectTransform>();

            component1.anchorMin = Vector2.zero;
            component1.anchorMax = Vector2.one;
            component1.sizeDelta = Vector2.zero;
            component1.offsetMin = new Vector2(10f, 6f);
            component1.offsetMax = new Vector2(-10f, -7f);
            RectTransform component2 = uiObject1.GetComponent <RectTransform>();

            component2.anchorMin     = Vector2.zero;
            component2.anchorMax     = Vector2.one;
            component2.sizeDelta     = Vector2.zero;
            component2.offsetMin     = new Vector2(10f, 6f);
            component2.offsetMax     = new Vector2(-10f, -7f);
            inputField.textComponent = lbl;
            inputField.placeholder   = (Graphic)text;
            return(uiElementRoot);
        }
Exemple #16
0
        public static GameObject CreateLoopHorizontalScrollRect(DefaultControls.Resources resources)
        {
            GameObject root = CreateUIElementRoot("Loop Horizontal Scroll Rect", new Vector2(200, 200));

            GameObject content = CreateUIObject("Content", root);

            RectTransform contentRT = content.GetComponent <RectTransform>();

            contentRT.anchorMin = new Vector2(0, 0.5f);
            contentRT.anchorMax = new Vector2(0, 0.5f);
            contentRT.sizeDelta = new Vector2(0, 200);
            contentRT.pivot     = new Vector2(0, 0.5f);

            // Setup UI components.

            LoopHorizontalScrollRect scrollRect = root.AddComponent <LoopHorizontalScrollRect>();

            scrollRect.content                       = contentRT;
            scrollRect.viewport                      = null;
            scrollRect.horizontalScrollbar           = null;
            scrollRect.verticalScrollbar             = null;
            scrollRect.horizontal                    = true;
            scrollRect.vertical                      = false;
            scrollRect.horizontalScrollbarVisibility = LoopScrollRect.EScrollbarVisibility.Permanent;
            scrollRect.verticalScrollbarVisibility   = LoopScrollRect.EScrollbarVisibility.Permanent;
            scrollRect.horizontalScrollbarSpacing    = 0;
            scrollRect.verticalScrollbarSpacing      = 0;

            root.AddComponent <RectMask2D>();

            HorizontalLayoutGroup layoutGroup = content.AddComponent <HorizontalLayoutGroup>();

            layoutGroup.childAlignment         = TextAnchor.MiddleLeft;
            layoutGroup.childForceExpandWidth  = false;
            layoutGroup.childForceExpandHeight = true;

            ContentSizeFitter sizeFitter = content.AddComponent <ContentSizeFitter>();

            sizeFitter.horizontalFit = ContentSizeFitter.FitMode.PreferredSize;
            sizeFitter.verticalFit   = ContentSizeFitter.FitMode.Unconstrained;

            return(root);
        }
Exemple #17
0
    protected Image CreateImage(string imageName)                               // 直接创建个默认 Image
    {
        GameObject canvas = new GameObject("Canvas");
        Canvas     c      = canvas.AddComponent <Canvas>();

        c.renderMode = RenderMode.ScreenSpaceOverlay;
        canvas.AddComponent <GraphicRaycaster>();
        CanvasScaler cs = canvas.AddComponent <CanvasScaler>();

        cs.uiScaleMode         = CanvasScaler.ScaleMode.ScaleWithScreenSize;
        cs.referenceResolution = new Vector2(1366f, 768f);
        cs.screenMatchMode     = CanvasScaler.ScreenMatchMode.Expand;

        DefaultControls.Resources res = new DefaultControls.Resources();
        GameObject go = DefaultControls.CreateImage(res);

        go.name             = imageName;
        go.transform.parent = canvas.transform;
        return(go.GetComponent <Image>());
    }
Exemple #18
0
    public void UpdateQuadImage()
    {
        m_OutputText = GetOutputText(m_Text);
        Debug.Log("UpdateQuadImage" + m_OutputText);

        m_ImagesVertexIdx.Clear();
        m_ImagesPool.Clear();
        foreach (Match match in s_ImageRegex.Matches(m_OutputText))
        {
            var picIdx     = match.Index + match.Length - 1;
            var endIdx     = picIdx * 4 + 3;
            var spriteName = match.Groups[1].Value;
            var size       = float.Parse(match.Groups[2].Value);
            Debug.Log("UpdateQuadImage.Match" + spriteName.ToString());

            m_ImagesVertexIdx.Add(endIdx);

            if (null != spriteName)
            {
                var resources = new DefaultControls.Resources();
                var go        = DefaultControls.CreateImage(resources);
                go.layer = gameObject.layer;
                var rt = go.transform as RectTransform;
                if (rt)
                {
                    rt.SetParent(rectTransform);
                    rt.localPosition = Vector3.zero;
                    rt.localRotation = Quaternion.identity;
                    rt.localScale    = Vector3.one;
                }
                m_ImagesPool.Add(go.GetComponent <Image>());
                var img = m_ImagesPool[m_ImagesVertexIdx.Count - 1];
                Debug.Log(m_ImagesPool[m_ImagesVertexIdx.Count - 1]);

                img.sprite = TextExImageMngr.GetInstance().GetSprite(spriteName);
                img.rectTransform.sizeDelta = new Vector2(size, size);
            }
        }
    }
Exemple #19
0
        // The Face map has been initialised in Awake, so we can use its facelet sprites.
        public void Start()
        {
            uiResources = new DefaultControls.Resources();

            faceletData = new FaceletData[5, 5];

            pOrigColor  = new Color[5, 5];
            pOrigSprite = new Sprite[5, 5];

            Color colour = GetColourForFace();

            for (int x = 0; x < 5; x++)
            {
                for (int y = 0; y < 5; y++)
                {
                    faceletData[x, y] = CreateFacelet(x, y, colour);

                    pOrigColor[x, y]  = colour;
                    pOrigSprite[x, y] = faceletData[x, y].facelet.GetComponent <Image>().sprite;
                }
            }
        }
Exemple #20
0
    private Text CreateExpandText(Text proText)              //创建一个新的Text(Tx_Expand)
    {
        DefaultControls.Resources resources = new DefaultControls.Resources();
        GameObject go = DefaultControls.CreateText(resources);

        go.name = "Tx_Expand";
        go.transform.SetParent(transform);
        go.layer = LayerMask.NameToLayer("UI");
        go.transform.localScale = Vector3.one;

        Text          copyText = go.GetComponent <Text>();
        RectTransform rt       = copyText.rectTransform;

        rt.anchoredPosition3D = Vector3.zero;
        rt.offsetMax          = Vector2.zero;
        rt.offsetMin          = Vector2.zero;
        rt.anchorMax          = Vector2.one;
        rt.anchorMin          = Vector2.zero;
        copyText.alignment    = proText.alignment;
        copyText.fontSize     = proText.fontSize;
        return(copyText);
    }
        public static GameObject CreateScrollbar(DefaultControls.Resources resources)
        {
            // Create GOs Hierarchy
            GameObject scrollbarRoot = CreateUIElementRoot("Scrollbar", s_ThinElementSize);

            GameObject sliderArea = CreateUIObject("Sliding Area", scrollbarRoot);
            GameObject handle     = CreateUIObject("Handle", sliderArea);

            Image bgImage = scrollbarRoot.AddComponent <Image>();

            bgImage.sprite = resources.background;
            bgImage.type   = Image.Type.Sliced;
            bgImage.color  = s_DefaultSelectableColor;

            Image handleImage = handle.AddComponent <Image>();

            handleImage.sprite = resources.standard;
            handleImage.type   = Image.Type.Sliced;
            handleImage.color  = s_DefaultSelectableColor;

            RectTransform sliderAreaRect = sliderArea.GetComponent <RectTransform>();

            sliderAreaRect.sizeDelta = new Vector2(-20, -20);
            sliderAreaRect.anchorMin = Vector2.zero;
            sliderAreaRect.anchorMax = Vector2.one;

            RectTransform handleRect = handle.GetComponent <RectTransform>();

            handleRect.sizeDelta = new Vector2(20, 20);

            Scrollbar scrollbar = scrollbarRoot.AddComponent <Scrollbar>();

            scrollbar.handleRect    = handleRect;
            scrollbar.targetGraphic = handleImage;
            SetDefaultColorTransitionValues(scrollbar);

            return(scrollbarRoot);
        }
    private void CreateTextField(int x, int y)

    {
        Perdedor.SetActive(false);
        Ganador.SetActive(true);

        DefaultControls.Resources uiResources = new DefaultControls.Resources();
        GameObject uiInputField = DefaultControls.CreateInputField(uiResources);

        uiInputField.transform.SetParent(canvas_transform, false);
        //uiInputField.transform.GetChild(0).GetComponent<Text>().font = (Font)Resources.GetBuiltinResource(typeof(Font), "BlackoakStd.ttf");
        uiInputField.transform.GetChild(0).GetComponent <Text>().font     = scoreFont;
        uiInputField.transform.GetChild(1).GetComponent <Text>().font     = scoreFont;
        uiInputField.transform.GetChild(0).GetComponent <Text>().text     = "___";
        uiInputField.transform.GetChild(0).GetComponent <Text>().fontSize = 8;
        uiInputField.transform.GetChild(1).GetComponent <Text>().fontSize = 15;
        InputField input = uiInputField.GetComponent <InputField>();

        input.characterLimit = 3;

        RectTransform trans = uiInputField.GetComponent <RectTransform>();

        trans.anchoredPosition = new Vector2(x, y - 5);
        trans.sizeDelta        = new Vector2(150, 60);

        input.onValueChanged.AddListener(delegate { ValueChangeCheck(input); });


        //ColorBlock cb = input.colors;
        //cb.highlightedColor = new Color(0f, 0f, 0f, 0f);
        //input.colors = cb;

        Image image = uiInputField.GetComponent <Image>();

        image.color = new Color(0f, 0f, 0f, 0f);

        input.Select();
    }
        private void RefereshScrollResources()
        {
            var scrollRect = GameObject.Find(_ScrollViewResourceDirs).GetComponent <ScrollRect>();

            // remove every text
            var uiContent = FindContent(scrollRect);

            foreach (Transform child in uiContent)
            {
                Destroy(child.gameObject);
            }

            // referesh text
            foreach (var dir in _remote.ResourceLoader.ResourceDirs)
            {
                DefaultControls.Resources tempResource = new DefaultControls.Resources();
                GameObject newText = DefaultControls.CreateText(tempResource);
                newText.AddComponent <LayoutElement>();
                newText.transform.SetParent(uiContent);
                newText.GetComponent <Text>().text      = dir;
                newText.GetComponent <Text>().alignment = TextAnchor.MiddleLeft;
            }
        }
Exemple #24
0
        protected virtual void InitView()
        {
            DefaultControls.Resources uiResources = new DefaultControls.Resources();
            uiResources.background = toggleBGElement;
            uiResources.checkmark  = checkmarkElement;

            // Create filters options for extruded structures
            metaDataCollection = new Dictionary <string, Toggle>();

            foreach (string key in Enum.GetNames(GetUsageType()))
            {
                GameObject uiToggle = DefaultControls.CreateToggle(uiResources);
                uiToggle.transform.SetParent(metaDataContent.transform, false);
                Text t = uiToggle.GetComponentInChildren <Text>();

                if (t != null)
                {
                    t.text = key;
                }

                metaDataCollection.Add(key, uiToggle.GetComponent <Toggle>());
            }
        }
    // Use this for initialization
    public CharInfoManager(CharacterManager characterManager, GameObject abilityContent, GameObject skillContent)
    {
        // Initialize
        methodOnClick     = characterManager.UpdateSkill;
        methodOnClick_two = characterManager.SelectWeapon;
        uiResources       = new DefaultControls.Resources();
        skillUI           = new Dictionary <string, GameObject>();
        abilityUI         = new Dictionary <string, GameObject>();
        selectedColor     = Color.yellow;
        equipedColor      = Color.blue;
        defaultColor      = Color.white;

        // GameObject
        this.characterManager     = characterManager;
        this.abilityContentHolder = abilityContent.transform.Find("ContentHolder").gameObject;
        this.skillContentHolder   = skillContent.transform.Find("ContentHolder").gameObject;
        this.equipOrUnequip       = abilityContent.transform.Find("ItemButton").transform.Find("EquipOrUnEquip").gameObject;

        // Render
        RenderAbility();
        RenderSkill();
        RenderEverythingElse();
    }
Exemple #26
0
    public void createButtons()
    {
        DefaultControls.Resources uiResources = new DefaultControls.Resources();
        GameObject canvas = GameObject.Find("PoseContent");

        for (int j = 0; j < canvas.transform.childCount; j++)
        {
            Destroy(canvas.transform.GetChild(j).gameObject);
        }
        int i = 0;

        canvas.GetComponent <RectTransform>().offsetMin = new Vector2(canvas.GetComponent <RectTransform>().offsetMin.x, 880);
        foreach (string anim in ModLoader.charMods[curChar])
        {
            string     anim2      = anim.Replace('\\', '/');
            GameObject animButton = DefaultControls.CreateButton(uiResources);
            animButton.name = anim2.Substring(anim2.LastIndexOf("/") + 1);
            animButton.transform.SetParent(canvas.transform);
            canvas.GetComponent <RectTransform>().offsetMin            = new Vector2(canvas.GetComponent <RectTransform>().offsetMin.x, canvas.GetComponent <RectTransform>().offsetMin.y - 200);
            animButton.GetComponent <RectTransform>().anchorMax        = new Vector2(0.5f, 1);
            animButton.GetComponent <RectTransform>().anchorMin        = new Vector2(0.5f, 1);
            animButton.GetComponent <RectTransform>().anchoredPosition = new Vector3(0, -100 - i * 200, 0);
            animButton.GetComponent <RectTransform>().sizeDelta        = new Vector2(200, 200);
            int k = i;
            animButton.GetComponent <Button>().onClick.AddListener(() => {
                PoseSwitch(curChar, k);
            });
            i += 1;
            animButton.GetComponentInChildren <Text>().text      = i.ToString();
            animButton.GetComponentInChildren <Text>().fontSize  = 72;
            animButton.GetComponentInChildren <Text>().font      = font;
            animButton.GetComponentInChildren <Text>().color     = Color.white;
            animButton.GetComponent <Image>().sprite             = sprite;
            animButton.GetComponent <RectTransform>().localScale = new Vector3(1, 1, 1);
        }
    }
        public static GameObject CreateButton(DefaultControls.Resources resources)
        {
            GameObject uiElementRoot = DefaultControls.CreateUIElementRoot("Button", DefaultControls.s_ThickElementSize);
            GameObject child         = new GameObject("Text");

            DefaultControls.SetParentAndAlign(child, uiElementRoot);
            Image image = uiElementRoot.AddComponent <Image>();

            image.sprite = resources.standard;
            image.type   = Image.Type.Sliced;
            image.color  = DefaultControls.s_DefaultSelectableColor;
            DefaultControls.SetDefaultColorTransitionValues((Selectable)uiElementRoot.AddComponent <Button>());
            Text lbl = child.AddComponent <Text>();

            lbl.text      = "Button";
            lbl.alignment = TextAnchor.MiddleCenter;
            DefaultControls.SetDefaultTextValues(lbl);
            RectTransform component = child.GetComponent <RectTransform>();

            component.anchorMin = Vector2.zero;
            component.anchorMax = Vector2.one;
            component.sizeDelta = Vector2.zero;
            return(uiElementRoot);
        }
        protected void UpdateQuadImage()
        {
#if UNITY_EDITOR
#if UNITY_2018_3_OR_NEWER
            bool isPrefab = UnityEditor.PrefabUtility.GetPrefabAssetType(this) == UnityEditor.PrefabAssetType.Regular;
#else
            bool isPrefab = UnityEditor.PrefabUtility.GetPrefabType(this) == UnityEditor.PrefabType.Prefab;
#endif
            if (isPrefab)
            {
                return;
            }
#endif
            outputText = GetOutputText();
            imagesVertexIndex.Clear();
            foreach (Match match in regex.Matches(outputText))
            {
                var picIndex = match.Index;
                var endIndex = picIndex * 4 + 3;
                imagesVertexIndex.Add(endIndex);

                imagesPool.RemoveAll(image => image == null);
                if (imagesPool.Count == 0)
                {
                    GetComponentsInChildren <Image>(imagesPool);
                }
                if (imagesVertexIndex.Count > imagesPool.Count)
                {
                    var resources = new DefaultControls.Resources();
                    var go        = DefaultControls.CreateImage(resources);
                    go.layer = gameObject.layer;
                    var rt = go.transform as RectTransform;
                    if (rt)
                    {
                        rt.SetParent(rectTransform);
                        rt.localPosition = Vector3.zero;
                        rt.localRotation = Quaternion.identity;
                        rt.localScale    = Vector3.one;
                    }
                    imagesPool.Add(go.GetComponent <Image>());
                }

                var spriteName = match.Groups[1].Value;
                //var size = float.Parse(match.Groups[2].Value);
                var img = imagesPool[imagesVertexIndex.Count - 1];
                if (img.sprite == null || img.sprite.name != spriteName)
                {
                    // img.sprite = Resources.Load<Sprite>(spriteName);
                    if (inspectorIconList != null && inspectorIconList.Length > 0)
                    {
                        foreach (IconName icon in inspectorIconList)
                        {
                            if (icon.name == spriteName)
                            {
                                img.sprite = icon.sprite;
                                break;
                            }
                        }
                    }
                }
                img.rectTransform.sizeDelta = new Vector2(fontSize * imageScalingFactor, fontSize * imageScalingFactor);
                img.enabled = true;
                if (positions.Count == imagesPool.Count)
                {
                    img.rectTransform.anchoredPosition = positions[imagesVertexIndex.Count - 1];
                }
            }

            for (var i = imagesVertexIndex.Count; i < imagesPool.Count; i++)
            {
                if (imagesPool[i])
                {
                    /* TEMPORARY FIX REMOVE IMAGES FROM POOL DELETE LATER SINCE CANNOT DESTROY */
                    imagesPool[i].gameObject.SetActive(false);
                    imagesPool[i].gameObject.hideFlags = HideFlags.HideAndDontSave;
                    culledImagesPool.Add(imagesPool[i].gameObject);
                    imagesPool.Remove(imagesPool[i]);
                }
            }
            if (culledImagesPool.Count > 1)
            {
                clearImages = true;
            }
        }
Exemple #29
0
    public void SetRatio(float[] areas, string[] names, Color[] colors)
    {
        if (!gameObject.activeSelf)
        {
            return;
        }
        float total = 0;

        float[] ratios  = new float[areas.Length];
        float[] heights = new float[areas.Length];
        foreach (int area in areas)
        {
            total += area;
        }

        float hTotal = rect.sizeDelta[1];

        totalHGet = hTotal;

        DefaultControls.Resources rc = SceneManager.uiResources;
        float lowest = 0;

        for (int i = 0; i < ratios.Length; i++)
        {
            #region cal ratio
            ratios[i] = areas[i] / total;
            float h = ratios[i] * hTotal;
            #endregion

            #region GameObject management
            if (bars == null)
            {
                bars = new List <GameObject>();
            }
            if (texts == null)
            {
                texts = new List <GameObject>();
            }
            int dif = bars.Count - ratios.Length;
            if (dif > 0)
            {
                SGUtility.RemoveExtraGameObjects(ref bars, dif);
            }
            if (dif > 0)
            {
                SGUtility.RemoveExtraGameObjects(ref texts, dif);
            }

            if (i >= bars.Count)
            {
                GameObject bar = DefaultControls.CreateImage(rc);
                bar.transform.parent = transform;
                int cIndex = i % SchemeColor.ColorSetDefault.Length;
                bars.Add(bar);
            }
            if (i >= texts.Count)
            {
                GameObject text = DefaultControls.CreateText(rc);
                text.transform.parent = transform;
                int cIndex = i % SchemeColor.ColorSetDefault.Length;
                text.GetComponent <Text>().text = "";
                texts.Add(text);
            }
            #endregion

            //bars[i].GetComponent<Image>().material.color = SchemeColor.ColorSetDefault[i];
            bars[i].GetComponent <Image>().color = colors[i];
            RectTransform barRect = (RectTransform)bars[i].transform;
            barRect.anchorMax        = new Vector2(0, 1);
            barRect.anchorMin        = new Vector2(0, 1);
            barRect.pivot            = new Vector2(0, 1);
            barRect.localScale       = new Vector3(1, 1, 1);
            barRect.sizeDelta        = new Vector2(20, h);
            barRect.anchoredPosition = new Vector2(0, lowest);

            string message = string.Format("{0}: {1}% area={2}sqm",
                                           names[i],
                                           Mathf.Round(ratios[i] * 100),
                                           areas[i]);

            Text t = texts[i].GetComponent <Text>();
            t.text     = message;
            t.fontSize = 8;
            t.color    = Color.white;
            RectTransform textRect = (RectTransform)texts[i].transform;
            textRect.anchoredPosition = new Vector2(35, lowest);
            textRect.anchorMax        = new Vector2(0, 1);
            textRect.anchorMin        = new Vector2(0, 1);
            textRect.pivot            = new Vector2(0, 1);
            textRect.localScale       = new Vector3(1, 1, 1);
            textRect.sizeDelta        = new Vector2(500, 30);
            textRect.anchoredPosition = new Vector2(30, lowest);

            lowest -= h;
        }
    }
Exemple #30
0
        protected void UpdateQuadImage()
        {
#if UNITY_EDITOR
            if (UnityEditor.PrefabUtility.GetPrefabType(this) == UnityEditor.PrefabType.Prefab)
            {
                return;
            }
#endif
            m_OutputText = GetOutputText();

            MatchCollection matches = s_Regex.Matches(m_OutputText);

            if (matches != null && matches.Count > 0)
            {
                for (int i = 0; i < matches.Count; i++)
                {
                    m_ImagesPool.RemoveAll(image => image == null);

                    if (m_ImagesPool.Count == 0)
                    {
                        GetComponentsInChildren <Image>(true, m_ImagesPool);
                    }

                    if (matches.Count > m_ImagesPool.Count)
                    {
                        var resources = new DefaultControls.Resources();
                        var go        = DefaultControls.CreateImage(resources);
                        go.layer = gameObject.layer;
                        var rt = go.transform as RectTransform;

                        if (rt)
                        {
                            rt.SetParent(rectTransform);
                            rt.anchoredPosition3D = Vector3.zero;
                            rt.localRotation      = Quaternion.identity;
                            rt.localScale         = Vector3.one;
                        }

                        m_ImagesPool.Add(go.GetComponent <Image>());
                    }

                    var spriteName = matches[i].Groups[1].Value;

                    var img = m_ImagesPool[i];

                    Vector2 imgoffset = Vector2.zero;

                    if (img.sprite == null || img.sprite.name != spriteName)
                    {
                        if (inspectorIconList != null && inspectorIconList.Length > 0)
                        {
                            foreach (IconName icon in inspectorIconList)
                            {
                                if (icon.name == spriteName)
                                {
                                    img.sprite                  = icon.sprite;
                                    img.preserveAspect          = true;
                                    img.rectTransform.sizeDelta = new Vector2(fontSize * ImageScalingFactor * icon.scale.x, fontSize * ImageScalingFactor * icon.scale.y);
                                    imgoffset = icon.offset;
                                    break;
                                }
                            }
                        }
                    }

                    img.enabled = true;

                    if (positions.Count > 0 && i < positions.Count)
                    {
                        img.rectTransform.anchoredPosition = positions[i] += imgoffset;
                    }
                }
            }
            else
            {
                // If there are no matches, remove the images from the pool
                for (int i = 0; i < m_ImagesPool.Count; i++)
                {
                    if (m_ImagesPool[i])
                    {
                        if (!culled_ImagesPool.Contains(m_ImagesPool[i].gameObject))
                        {
                            culled_ImagesPool.Add(m_ImagesPool[i].gameObject);
                            m_ImagesPool.Remove(m_ImagesPool[i]);
                        }
                    }
                }
            }

            // Remove any images that are not being used
            for (var i = matches.Count; i < m_ImagesPool.Count; i++)
            {
                if (m_ImagesPool[i])
                {
                    if (!culled_ImagesPool.Contains(m_ImagesPool[i].gameObject))
                    {
                        culled_ImagesPool.Add(m_ImagesPool[i].gameObject);
                        m_ImagesPool.Remove(m_ImagesPool[i]);
                    }
                }
            }

            // Clear the images when it is safe to do so
            if (culled_ImagesPool.Count > 0)
            {
                clearImages = true;
            }
        }