/* internal static BillboardText CreateBillboardText(Text prefab, Transform parentTransform, string text, float x, float y, float z, float angle, bool hideHirarechy, int fontSize, float sharpness) * { * return CreateBillboardText(prefab, parentTransform, text, x, y, z, angle, null, hideHirarechy, fontSize, sharpness); * }*/ internal static BillboardText UpdateBillboardText(BillboardText billboardText, Transform parentTransform, string text, float x, float y, float z, float angle, Transform relativeFrom, bool hideHirarechy, bool yMirror) { GameObject UIText = billboardText.UIText.gameObject; GameObject billboard = billboardText.gameObject; ChartCommon.HideObject(billboard, hideHirarechy); TextDirection direction = UIText.GetComponent <TextDirection>(); GameObject TextObj = billboardText.UIText; billboardText.YMirror = yMirror; if (direction != null) { TextObj = direction.Text.gameObject; if (relativeFrom != null) { direction.SetRelativeTo(relativeFrom, billboard.transform); } // else direction.SetDirection(angle); } // if (parentTransform != null && billboard.transform.parent != parentTransform) // { // billboard.transform.SetParent(parentTransform, false); // } UpdateTextParams(TextObj, text); billboard.transform.localPosition = new Vector3(x, y, z); return(billboardText); }
void DestoryBillboard(BillboardText t) { t.Recycled = false; Text uiText = t.UIText; TextDirection d = t.Direction; if (uiText != null && uiText.gameObject != null) { ChartCommon.SafeDestroy(uiText.gameObject); } if (d != null && d.gameObject != null) { ChartCommon.SafeDestroy(d.gameObject); } if (t != null) { ChartCommon.SafeDestroy(t.gameObject); } }
internal static BillboardText CreateBillboardText(BillboardText item, MonoBehaviour prefab, Transform parentTransform, string text, float x, float y, float z, float angle, Transform relativeFrom, bool hideHirarechy, int fontSize, float sharpness) { if (item != null) { return(UpdateBillboardText(item, parentTransform, text, x, y, z, angle, relativeFrom, hideHirarechy, prefab != null && prefab.transform.localScale.y < 0)); } if (prefab == null || prefab.gameObject == null) { GameObject g = Resources.Load("Chart And Graph/DefaultText") as GameObject; prefab = g.GetComponent <Text>(); } GameObject UIText = (GameObject)GameObject.Instantiate(prefab.gameObject); GameObject billboard = new GameObject(); ChartCommon.HideObject(billboard, hideHirarechy); if (parentTransform.GetComponent <RectTransform>()) { billboard.AddComponent <RectTransform>(); } if (parentTransform != null) { billboard.transform.SetParent(parentTransform, false); UIText.transform.SetParent(parentTransform, false); } BillboardText billboardText = billboard.AddComponent <BillboardText>(); billboard.AddComponent <ChartItem>(); TextDirection direction = UIText.GetComponent <TextDirection>(); GameObject obj = null; if (direction != null) { obj = direction.Text.gameObject; if (relativeFrom != null) { direction.SetRelativeTo(relativeFrom, billboard.transform); } // else direction.SetDirection(angle); } if (obj == null) { obj = UIText; } sharpness = Mathf.Clamp(sharpness, 1f, 3f); bool setParams = SetTextParams(obj, text, fontSize, sharpness); if (billboardText == null || setParams == false) { SafeDestroy(UIText); SafeDestroy(billboard); return(null); } if (prefab != null && prefab.transform.localScale.y < 0) { billboardText.YMirror = true; } billboardText.Scale = (1f / sharpness); billboardText.UIText = obj; billboardText.Direction = direction; if (direction != null) { billboardText.RectTransformOverride = direction.GetComponent <RectTransform>(); } else { billboardText.RectTransformOverride = null; } billboard.transform.localPosition = new Vector3(x, y, z); return(billboardText); }
internal static BillboardText CreateBillboardText(BillboardText item, Text prefab, Transform parentTransform, string text, float x, float y, float z, float angle, Transform relativeFrom, bool hideHirarechy, int fontSize, float sharpness) { if (item != null) { return(UpdateBillboardText(item, parentTransform, text, x, y, z, angle, relativeFrom, hideHirarechy)); } if (prefab == null || prefab.gameObject == null) { GameObject g = Resources.Load("Chart And Graph/DefaultText") as GameObject; prefab = g.GetComponent <Text>(); } GameObject UIText = (GameObject)GameObject.Instantiate(prefab.gameObject); GameObject billboard = new GameObject(); ChartCommon.HideObject(billboard, hideHirarechy); if (parentTransform != null) { billboard.transform.SetParent(parentTransform, false); UIText.transform.SetParent(parentTransform, false); } BillboardText billboardText = billboard.AddComponent <BillboardText>(); billboard.AddComponent <ChartItem>(); TextDirection direction = UIText.GetComponent <TextDirection>(); Text TextObj = UIText.GetComponent <Text>(); if (direction != null) { TextObj = direction.Text; if (relativeFrom != null) { direction.SetRelativeTo(relativeFrom, billboard.transform); } else { direction.SetDirection(angle); } } if (billboardText == null || TextObj == null) { SafeDestroy(UIText); SafeDestroy(billboard); return(null); } sharpness = Mathf.Clamp(sharpness, 1f, 3f); TextObj.fontSize = (int)(fontSize * sharpness); TextObj.horizontalOverflow = HorizontalWrapMode.Overflow; TextObj.verticalOverflow = VerticalWrapMode.Overflow; TextObj.resizeTextForBestFit = false; billboardText.Scale = 1f / sharpness; TextObj.text = text; billboardText.UIText = TextObj; billboardText.Direction = direction; if (direction != null) { billboardText.RectTransformOverride = direction.GetComponent <RectTransform>(); } else { billboardText.RectTransformOverride = null; } billboard.transform.localPosition = new Vector3(x, y, z); return(billboardText); }