Esempio n. 1
0
        public override GameObject Render(Renderer renderer)
        {
            var go = PrefabCreator.CreateUIGameObject(Name);

            var rect = go.GetComponent <RectTransform>();

            rect.localPosition = renderer.CalcPosition(canvasPosition, sizeDelta);
            rect.sizeDelta     = sizeDelta;

            var raw = go.AddComponent <RawData>();

            raw.Info["font_size"] = fontSize;
            raw.Info["align"]     = align;

            var text = go.AddComponent <Text>();

            text.text               = message;
            text.font               = renderer.GetFont(font);
            text.fontSize           = Mathf.RoundToInt(fontSize);
            text.color              = fontColor;
            text.horizontalOverflow = HorizontalWrapMode.Overflow;
            text.verticalOverflow   = VerticalWrapMode.Overflow;

            var fixedPos = rect.localPosition;

            switch (align)
            {
            case "left":
                text.alignment = TextAnchor.MiddleLeft;
                rect.pivot     = new Vector2(0.0f, 0.5f);
                fixedPos.x    -= sizeDelta.x / 2.0f;
                break;

            case "center":
                text.alignment = TextAnchor.MiddleCenter;
                rect.pivot     = new Vector2(0.5f, 0.5f);
                break;

            case "right":
                text.alignment = TextAnchor.MiddleRight;
                rect.pivot     = new Vector2(1.0f, 0.5f);
                fixedPos.x    += sizeDelta.x / 2.0f;
                break;
            }
            rect.localPosition = fixedPos;

            var d = rect.sizeDelta;

            d.y            = virtualHeight;
            rect.sizeDelta = d;

            return(go);
        }
Esempio n. 2
0
        protected virtual GameObject CreateSelf(Renderer renderer)
        {
            var go = CreateUIGameObject(renderer);

            var rect = go.GetComponent <RectTransform>();
            var area = CalcArea();

            rect.sizeDelta        = area.Size;
            rect.anchoredPosition = renderer.CalcPosition(area.Min, area.Size);

            SetMaskImage(renderer, go);
            return(go);
        }
Esempio n. 3
0
        public override GameObject Render(Renderer renderer)
        {
            var go = CreateUIGameObject(renderer);

            var rect = go.GetComponent <RectTransform>();

            rect.anchoredPosition = renderer.CalcPosition(canvasPosition, sizeDelta);
            rect.sizeDelta        = sizeDelta;

            var image = go.AddComponent <Image>();

            image.sprite = renderer.GetSprite(spriteName);
            image.type   = Image.Type.Sliced;
            image.color  = new Color(1.0f, 1.0f, 1.0f, opacity / 100.0f);

            SetStretch(go, renderer);
            SetPivot(go, renderer);

            return(go);
        }
Esempio n. 4
0
        public override GameObject Render(Renderer renderer)
        {
            var go = PrefabCreator.CreateUIGameObject(Name);

            var rect = go.GetComponent <RectTransform>();

            rect.anchoredPosition = renderer.CalcPosition(canvasPosition, sizeDelta);
            rect.sizeDelta        = sizeDelta;

            var image = go.AddComponent <Image>();

            image.sprite = renderer.GetSprite(spriteName);
            image.type   = Image.Type.Sliced;
            image.color  = new Color(1.0f, 1.0f, 1.0f, opacity / 100.0f);

            if (background)
            {
                rect.anchorMin = Vector2.zero;
                rect.anchorMax = Vector2.one;
                rect.sizeDelta = Vector2.zero;
            }

            return(go);
        }
Esempio n. 5
0
        public override GameObject Render(Renderer renderer)
        {
            var go = CreateUIGameObject(renderer);

            var rect = go.GetComponent <RectTransform>();

            rect.anchoredPosition = renderer.CalcPosition(canvasPosition, sizeDelta);
            rect.sizeDelta        = sizeDelta;

            var raw = go.AddComponent <RawData>();

            raw.Info["font_size"] = fontSize;
            raw.Info["align"]     = align;

            var text = go.AddComponent <Text>();

            text.text     = message;
            text.font     = renderer.GetFont(font);
            text.fontSize = Mathf.RoundToInt(fontSize);
            text.color    = fontColor;

            bool middle = true;

            if (type == "point")
            {
                text.horizontalOverflow = HorizontalWrapMode.Overflow;
                text.verticalOverflow   = VerticalWrapMode.Overflow;
                middle = true;
            }
            else if (type == "paragraph")
            {
                text.horizontalOverflow = HorizontalWrapMode.Wrap;
                text.verticalOverflow   = VerticalWrapMode.Overflow;
                middle = !message.Contains("\n");
            }
            else
            {
                Debug.LogError("unknown type " + type);
            }

            var fixedPos = rect.anchoredPosition;

            switch (align)
            {
            case "left":
                text.alignment =  middle ? TextAnchor.MiddleLeft : TextAnchor.UpperLeft;
                rect.pivot     = new Vector2(0.0f, 0.5f);
                fixedPos.x    -= sizeDelta.x / 2.0f;
                break;

            case "center":
                text.alignment =  middle ? TextAnchor.MiddleCenter : TextAnchor.UpperCenter;
                rect.pivot     = new Vector2(0.5f, 0.5f);
                break;

            case "right":
                text.alignment =  middle ? TextAnchor.MiddleRight : TextAnchor.UpperRight;
                rect.pivot     = new Vector2(1.0f, 0.5f);
                fixedPos.x    += sizeDelta.x / 2.0f;
                break;
            }
            rect.anchoredPosition = fixedPos;

            var d = rect.sizeDelta;

            d.y            = virtualHeight;
            rect.sizeDelta = d;

            if (enableStroke)
            {
                var outline = go.AddComponent <Outline>();
                outline.effectColor     = strokeColor;
                outline.effectDistance  = new Vector2(strokeSize / 2.0f, -strokeSize / 2.0f);
                outline.useGraphicAlpha = false;
            }

            SetStretch(go, renderer);
            SetPivot(go, renderer);
            return(go);
        }