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); }
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); }
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); }
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); }
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); }