mirror of
https://github.com/XCharts-Team/XCharts.git
synced 2026-05-30 13:28:47 +00:00
重构ChartHelper.GetOrAddComponent接口
This commit is contained in:
@@ -19,7 +19,7 @@ namespace XCharts.Runtime
|
|||||||
component.gameObject = backgroundObj;
|
component.gameObject = backgroundObj;
|
||||||
backgroundObj.hideFlags = chart.chartHideFlags;
|
backgroundObj.hideFlags = chart.chartHideFlags;
|
||||||
|
|
||||||
var backgroundImage = ChartHelper.GetOrAddComponent<Image>(backgroundObj);
|
var backgroundImage = ChartHelper.EnsureComponent<Image>(backgroundObj);
|
||||||
ChartHelper.UpdateRectTransform(backgroundObj, chart.chartMinAnchor,
|
ChartHelper.UpdateRectTransform(backgroundObj, chart.chartMinAnchor,
|
||||||
chart.chartMaxAnchor, chart.chartPivot, chart.chartSizeDelta);
|
chart.chartMaxAnchor, chart.chartPivot, chart.chartSizeDelta);
|
||||||
backgroundImage.sprite = component.image;
|
backgroundImage.sprite = component.image;
|
||||||
|
|||||||
@@ -50,11 +50,11 @@ namespace XCharts.Runtime
|
|||||||
var objPivot = new Vector2(0, 1);
|
var objPivot = new Vector2(0, 1);
|
||||||
var btnObj = ChartHelper.AddObject(objName, parent, objAnchorMin, objAnchorMax, objPivot, sizeDelta);
|
var btnObj = ChartHelper.AddObject(objName, parent, objAnchorMin, objAnchorMax, objPivot, sizeDelta);
|
||||||
var iconObj = ChartHelper.AddObject("icon", btnObj.transform, anchorMin, anchorMax, pivot, iconSizeDelta);
|
var iconObj = ChartHelper.AddObject("icon", btnObj.transform, anchorMin, anchorMax, pivot, iconSizeDelta);
|
||||||
var img = ChartHelper.GetOrAddComponent<Image>(btnObj);
|
var img = ChartHelper.EnsureComponent<Image>(btnObj);
|
||||||
img.color = Color.clear;
|
img.color = Color.clear;
|
||||||
img.raycastTarget = true;
|
img.raycastTarget = true;
|
||||||
ChartHelper.GetOrAddComponent<Button>(btnObj);
|
ChartHelper.EnsureComponent<Button>(btnObj);
|
||||||
ChartHelper.GetOrAddComponent<Image>(iconObj);
|
ChartHelper.EnsureComponent<Image>(iconObj);
|
||||||
|
|
||||||
var label = ChartHelper.AddChartLabel("content", btnObj.transform, legend.labelStyle, theme.legend,
|
var label = ChartHelper.AddChartLabel("content", btnObj.transform, legend.labelStyle, theme.legend,
|
||||||
content, contentColor, TextAnchor.MiddleLeft);
|
content, contentColor, TextAnchor.MiddleLeft);
|
||||||
|
|||||||
@@ -217,19 +217,19 @@ namespace XCharts.Runtime
|
|||||||
view.gameObject.transform.localPosition = Vector3.zero;
|
view.gameObject.transform.localPosition = Vector3.zero;
|
||||||
view.transform = view.gameObject.transform;
|
view.transform = view.gameObject.transform;
|
||||||
|
|
||||||
view.background = ChartHelper.GetOrAddComponent<Image>(view.gameObject);
|
view.background = ChartHelper.EnsureComponent<Image>(view.gameObject);
|
||||||
view.background.sprite = tooltip.backgroundImage;
|
view.background.sprite = tooltip.backgroundImage;
|
||||||
view.background.type = tooltip.backgroundType;
|
view.background.type = tooltip.backgroundType;
|
||||||
view.background.color = ChartHelper.IsClearColor(tooltip.backgroundColor) ?
|
view.background.color = ChartHelper.IsClearColor(tooltip.backgroundColor) ?
|
||||||
Color.white : tooltip.backgroundColor;
|
Color.white : tooltip.backgroundColor;
|
||||||
|
|
||||||
view.border = ChartHelper.GetOrAddComponent<Outline>(view.gameObject);
|
view.border = ChartHelper.EnsureComponent<Outline>(view.gameObject);
|
||||||
view.border.enabled = tooltip.borderWidth > 0;
|
view.border.enabled = tooltip.borderWidth > 0;
|
||||||
view.border.useGraphicAlpha = false;
|
view.border.useGraphicAlpha = false;
|
||||||
view.border.effectColor = tooltip.borderColor;
|
view.border.effectColor = tooltip.borderColor;
|
||||||
view.border.effectDistance = new Vector2(tooltip.borderWidth, -tooltip.borderWidth);
|
view.border.effectDistance = new Vector2(tooltip.borderWidth, -tooltip.borderWidth);
|
||||||
|
|
||||||
view.layout = ChartHelper.GetOrAddComponent<VerticalLayoutGroup>(view.gameObject);
|
view.layout = ChartHelper.EnsureComponent<VerticalLayoutGroup>(view.gameObject);
|
||||||
view.layout.childControlHeight = false;
|
view.layout.childControlHeight = false;
|
||||||
view.layout.childControlWidth = false;
|
view.layout.childControlWidth = false;
|
||||||
view.layout.childForceExpandHeight = false;
|
view.layout.childForceExpandHeight = false;
|
||||||
|
|||||||
@@ -169,12 +169,39 @@ namespace XCharts.Runtime
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[System.Obsolete("Use EnsureComponent instead")]
|
||||||
public static T GetOrAddComponent<T>(Transform transform) where T : Component
|
public static T GetOrAddComponent<T>(Transform transform) where T : Component
|
||||||
{
|
{
|
||||||
return GetOrAddComponent<T>(transform.gameObject);
|
return EnsureComponent<T>(transform.gameObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[System.Obsolete("Use EnsureComponent instead")]
|
||||||
public static T GetOrAddComponent<T>(GameObject gameObject) where T : Component
|
public static T GetOrAddComponent<T>(GameObject gameObject) where T : Component
|
||||||
|
{
|
||||||
|
return EnsureComponent<T>(gameObject);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Ensure that the transform has the specified component, add it if not.
|
||||||
|
/// |确保对象有指定的组件,如果没有则添加。
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="transform"></param>
|
||||||
|
/// <typeparam name="T"></typeparam>
|
||||||
|
/// <returns></returns>
|
||||||
|
public static T EnsureComponent<T>(Transform transform) where T : Component
|
||||||
|
{
|
||||||
|
return EnsureComponent<T>(transform.gameObject);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Ensure that the game object has the specified component, add it if not.
|
||||||
|
/// | 确保对象有指定的组件,如果没有则添加。
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="gameObject"></param>
|
||||||
|
/// <typeparam name="T"></typeparam>
|
||||||
|
/// <returns></returns>
|
||||||
|
public static T EnsureComponent<T>(GameObject gameObject) where T : Component
|
||||||
{
|
{
|
||||||
if (gameObject.GetComponent<T>() == null)
|
if (gameObject.GetComponent<T>() == null)
|
||||||
{
|
{
|
||||||
@@ -214,7 +241,7 @@ namespace XCharts.Runtime
|
|||||||
obj.transform.localRotation = Quaternion.Euler(0, 0, 0);
|
obj.transform.localRotation = Quaternion.Euler(0, 0, 0);
|
||||||
obj.layer = parent.gameObject.layer;
|
obj.layer = parent.gameObject.layer;
|
||||||
}
|
}
|
||||||
RectTransform rect = GetOrAddComponent<RectTransform>(obj);
|
RectTransform rect = EnsureComponent<RectTransform>(obj);
|
||||||
rect.localPosition = Vector3.zero;
|
rect.localPosition = Vector3.zero;
|
||||||
rect.sizeDelta = sizeDelta;
|
rect.sizeDelta = sizeDelta;
|
||||||
rect.anchorMin = anchorMin;
|
rect.anchorMin = anchorMin;
|
||||||
@@ -228,7 +255,7 @@ namespace XCharts.Runtime
|
|||||||
Vector2 anchorMax, Vector2 pivot, Vector2 sizeDelta)
|
Vector2 anchorMax, Vector2 pivot, Vector2 sizeDelta)
|
||||||
{
|
{
|
||||||
if (obj == null) return;
|
if (obj == null) return;
|
||||||
RectTransform rect = GetOrAddComponent<RectTransform>(obj);
|
RectTransform rect = EnsureComponent<RectTransform>(obj);
|
||||||
rect.sizeDelta = sizeDelta;
|
rect.sizeDelta = sizeDelta;
|
||||||
rect.anchorMin = anchorMin;
|
rect.anchorMin = anchorMin;
|
||||||
rect.anchorMax = anchorMax;
|
rect.anchorMax = anchorMax;
|
||||||
@@ -253,7 +280,7 @@ namespace XCharts.Runtime
|
|||||||
chartText.tmpText.raycastTarget = false;
|
chartText.tmpText.raycastTarget = false;
|
||||||
chartText.tmpText.enableWordWrapping = textStyle.autoWrap;
|
chartText.tmpText.enableWordWrapping = textStyle.autoWrap;
|
||||||
#else
|
#else
|
||||||
chartText.text = GetOrAddComponent<Text>(txtObj);
|
chartText.text = EnsureComponent<Text>(txtObj);
|
||||||
chartText.text.font = textStyle.font == null ? theme.font : textStyle.font;
|
chartText.text.font = textStyle.font == null ? theme.font : textStyle.font;
|
||||||
chartText.text.fontStyle = textStyle.fontStyle;
|
chartText.text.fontStyle = textStyle.fontStyle;
|
||||||
chartText.text.horizontalOverflow = textStyle.autoWrap ? HorizontalWrapMode.Wrap : HorizontalWrapMode.Overflow;
|
chartText.text.horizontalOverflow = textStyle.autoWrap ? HorizontalWrapMode.Wrap : HorizontalWrapMode.Overflow;
|
||||||
@@ -272,7 +299,7 @@ namespace XCharts.Runtime
|
|||||||
chartText.SetLineSpacing(textStyle.lineSpacing);
|
chartText.SetLineSpacing(textStyle.lineSpacing);
|
||||||
chartText.SetActive(textStyle.show);
|
chartText.SetActive(textStyle.show);
|
||||||
|
|
||||||
RectTransform rect = GetOrAddComponent<RectTransform>(txtObj);
|
RectTransform rect = EnsureComponent<RectTransform>(txtObj);
|
||||||
rect.localPosition = Vector3.zero;
|
rect.localPosition = Vector3.zero;
|
||||||
rect.sizeDelta = sizeDelta;
|
rect.sizeDelta = sizeDelta;
|
||||||
rect.anchorMin = anchorMin;
|
rect.anchorMin = anchorMin;
|
||||||
@@ -287,7 +314,7 @@ namespace XCharts.Runtime
|
|||||||
var painterObj = ChartHelper.AddObject(name, parent, anchorMin, anchorMax, pivot, sizeDelta);
|
var painterObj = ChartHelper.AddObject(name, parent, anchorMin, anchorMax, pivot, sizeDelta);
|
||||||
painterObj.hideFlags = hideFlags;
|
painterObj.hideFlags = hideFlags;
|
||||||
painterObj.transform.SetSiblingIndex(siblingIndex);
|
painterObj.transform.SetSiblingIndex(siblingIndex);
|
||||||
return ChartHelper.GetOrAddComponent<Painter>(painterObj);
|
return ChartHelper.EnsureComponent<Painter>(painterObj);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Image AddIcon(string name, Transform parent, IconStyle iconStyle)
|
public static Image AddIcon(string name, Transform parent, IconStyle iconStyle)
|
||||||
@@ -303,7 +330,7 @@ namespace XCharts.Runtime
|
|||||||
var pivot = new Vector2(0.5f, 0.5f);
|
var pivot = new Vector2(0.5f, 0.5f);
|
||||||
var sizeDelta = new Vector2(width, height);
|
var sizeDelta = new Vector2(width, height);
|
||||||
GameObject iconObj = AddObject(name, parent, anchorMin, anchorMax, pivot, sizeDelta);
|
GameObject iconObj = AddObject(name, parent, anchorMin, anchorMax, pivot, sizeDelta);
|
||||||
var img = GetOrAddComponent<Image>(iconObj);
|
var img = EnsureComponent<Image>(iconObj);
|
||||||
if (img.raycastTarget != false)
|
if (img.raycastTarget != false)
|
||||||
img.raycastTarget = false;
|
img.raycastTarget = false;
|
||||||
if (img.type != type)
|
if (img.type != type)
|
||||||
@@ -362,7 +389,7 @@ namespace XCharts.Runtime
|
|||||||
var alignment = textStyle.GetAlignment(autoAlignment);
|
var alignment = textStyle.GetAlignment(autoAlignment);
|
||||||
UpdateAnchorAndPivotByTextAlignment(alignment, out anchorMin, out anchorMax, out pivot);
|
UpdateAnchorAndPivotByTextAlignment(alignment, out anchorMin, out anchorMax, out pivot);
|
||||||
var labelObj = AddObject(name, parent, anchorMin, anchorMax, pivot, sizeDelta);
|
var labelObj = AddObject(name, parent, anchorMin, anchorMax, pivot, sizeDelta);
|
||||||
var label = GetOrAddComponent<ChartLabel>(labelObj);
|
var label = EnsureComponent<ChartLabel>(labelObj);
|
||||||
label.text = AddTextObject("Text", label.gameObject.transform, anchorMin, anchorMax, pivot,
|
label.text = AddTextObject("Text", label.gameObject.transform, anchorMin, anchorMax, pivot,
|
||||||
sizeDelta, textStyle, theme, autoColor, autoAlignment, label.text);
|
sizeDelta, textStyle, theme, autoColor, autoAlignment, label.text);
|
||||||
label.icon = ChartHelper.AddIcon("Icon", label.gameObject.transform, labelStyle.icon);
|
label.icon = ChartHelper.AddIcon("Icon", label.gameObject.transform, labelStyle.icon);
|
||||||
@@ -397,7 +424,7 @@ namespace XCharts.Runtime
|
|||||||
UpdateAnchorAndPivotByTextAlignment(alignment, out anchorMin, out anchorMax, out pivot);
|
UpdateAnchorAndPivotByTextAlignment(alignment, out anchorMin, out anchorMax, out pivot);
|
||||||
var vector0_5 = new Vector2(0.5f, 0.5f);
|
var vector0_5 = new Vector2(0.5f, 0.5f);
|
||||||
var labelObj = AddObject(name, parent, vector0_5, vector0_5, vector0_5, sizeDelta);
|
var labelObj = AddObject(name, parent, vector0_5, vector0_5, vector0_5, sizeDelta);
|
||||||
var label = GetOrAddComponent<ChartLabel>(labelObj);
|
var label = EnsureComponent<ChartLabel>(labelObj);
|
||||||
label.text = AddTextObject("Text", label.gameObject.transform, anchorMin, anchorMax, pivot,
|
label.text = AddTextObject("Text", label.gameObject.transform, anchorMin, anchorMax, pivot,
|
||||||
sizeDelta, textStyle, theme, autoColor, autoAlignment, label.text);
|
sizeDelta, textStyle, theme, autoColor, autoAlignment, label.text);
|
||||||
label.icon = ChartHelper.AddIcon("Icon", label.gameObject.transform, labelStyle.icon);
|
label.icon = ChartHelper.AddIcon("Icon", label.gameObject.transform, labelStyle.icon);
|
||||||
@@ -787,7 +814,7 @@ namespace XCharts.Runtime
|
|||||||
public static void AddEventListener(GameObject obj, EventTriggerType type,
|
public static void AddEventListener(GameObject obj, EventTriggerType type,
|
||||||
UnityEngine.Events.UnityAction<BaseEventData> call)
|
UnityEngine.Events.UnityAction<BaseEventData> call)
|
||||||
{
|
{
|
||||||
EventTrigger trigger = GetOrAddComponent<EventTrigger>(obj.gameObject);
|
EventTrigger trigger = EnsureComponent<EventTrigger>(obj.gameObject);
|
||||||
EventTrigger.Entry entry = new EventTrigger.Entry();
|
EventTrigger.Entry entry = new EventTrigger.Entry();
|
||||||
entry.eventID = type;
|
entry.eventID = type;
|
||||||
entry.callback = new EventTrigger.TriggerEvent();
|
entry.callback = new EventTrigger.TriggerEvent();
|
||||||
|
|||||||
@@ -189,7 +189,7 @@ namespace XCharts.Runtime
|
|||||||
{
|
{
|
||||||
if (m_SerieRoot != null)
|
if (m_SerieRoot != null)
|
||||||
{
|
{
|
||||||
var rect = ChartHelper.GetOrAddComponent<RectTransform>(m_SerieRoot);
|
var rect = ChartHelper.EnsureComponent<RectTransform>(m_SerieRoot);
|
||||||
rect.localPosition = Vector3.zero;
|
rect.localPosition = Vector3.zero;
|
||||||
rect.sizeDelta = chart.chartSizeDelta;
|
rect.sizeDelta = chart.chartSizeDelta;
|
||||||
rect.anchorMin = chart.chartMinAnchor;
|
rect.anchorMin = chart.chartMinAnchor;
|
||||||
|
|||||||
Reference in New Issue
Block a user