mirror of
https://github.com/XCharts-Team/XCharts.git
synced 2026-05-14 20:00:09 +00:00
重构ChartHelper.GetOrAddComponent接口
This commit is contained in:
@@ -19,7 +19,7 @@ namespace XCharts.Runtime
|
||||
component.gameObject = backgroundObj;
|
||||
backgroundObj.hideFlags = chart.chartHideFlags;
|
||||
|
||||
var backgroundImage = ChartHelper.GetOrAddComponent<Image>(backgroundObj);
|
||||
var backgroundImage = ChartHelper.EnsureComponent<Image>(backgroundObj);
|
||||
ChartHelper.UpdateRectTransform(backgroundObj, chart.chartMinAnchor,
|
||||
chart.chartMaxAnchor, chart.chartPivot, chart.chartSizeDelta);
|
||||
backgroundImage.sprite = component.image;
|
||||
|
||||
@@ -50,11 +50,11 @@ namespace XCharts.Runtime
|
||||
var objPivot = new Vector2(0, 1);
|
||||
var btnObj = ChartHelper.AddObject(objName, parent, objAnchorMin, objAnchorMax, objPivot, sizeDelta);
|
||||
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.raycastTarget = true;
|
||||
ChartHelper.GetOrAddComponent<Button>(btnObj);
|
||||
ChartHelper.GetOrAddComponent<Image>(iconObj);
|
||||
ChartHelper.EnsureComponent<Button>(btnObj);
|
||||
ChartHelper.EnsureComponent<Image>(iconObj);
|
||||
|
||||
var label = ChartHelper.AddChartLabel("content", btnObj.transform, legend.labelStyle, theme.legend,
|
||||
content, contentColor, TextAnchor.MiddleLeft);
|
||||
|
||||
@@ -217,19 +217,19 @@ namespace XCharts.Runtime
|
||||
view.gameObject.transform.localPosition = Vector3.zero;
|
||||
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.type = tooltip.backgroundType;
|
||||
view.background.color = ChartHelper.IsClearColor(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.useGraphicAlpha = false;
|
||||
view.border.effectColor = tooltip.borderColor;
|
||||
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.childControlWidth = false;
|
||||
view.layout.childForceExpandHeight = false;
|
||||
|
||||
@@ -169,12 +169,39 @@ namespace XCharts.Runtime
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
[System.Obsolete("Use EnsureComponent instead")]
|
||||
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
|
||||
{
|
||||
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)
|
||||
{
|
||||
@@ -214,7 +241,7 @@ namespace XCharts.Runtime
|
||||
obj.transform.localRotation = Quaternion.Euler(0, 0, 0);
|
||||
obj.layer = parent.gameObject.layer;
|
||||
}
|
||||
RectTransform rect = GetOrAddComponent<RectTransform>(obj);
|
||||
RectTransform rect = EnsureComponent<RectTransform>(obj);
|
||||
rect.localPosition = Vector3.zero;
|
||||
rect.sizeDelta = sizeDelta;
|
||||
rect.anchorMin = anchorMin;
|
||||
@@ -228,7 +255,7 @@ namespace XCharts.Runtime
|
||||
Vector2 anchorMax, Vector2 pivot, Vector2 sizeDelta)
|
||||
{
|
||||
if (obj == null) return;
|
||||
RectTransform rect = GetOrAddComponent<RectTransform>(obj);
|
||||
RectTransform rect = EnsureComponent<RectTransform>(obj);
|
||||
rect.sizeDelta = sizeDelta;
|
||||
rect.anchorMin = anchorMin;
|
||||
rect.anchorMax = anchorMax;
|
||||
@@ -253,7 +280,7 @@ namespace XCharts.Runtime
|
||||
chartText.tmpText.raycastTarget = false;
|
||||
chartText.tmpText.enableWordWrapping = textStyle.autoWrap;
|
||||
#else
|
||||
chartText.text = GetOrAddComponent<Text>(txtObj);
|
||||
chartText.text = EnsureComponent<Text>(txtObj);
|
||||
chartText.text.font = textStyle.font == null ? theme.font : textStyle.font;
|
||||
chartText.text.fontStyle = textStyle.fontStyle;
|
||||
chartText.text.horizontalOverflow = textStyle.autoWrap ? HorizontalWrapMode.Wrap : HorizontalWrapMode.Overflow;
|
||||
@@ -272,7 +299,7 @@ namespace XCharts.Runtime
|
||||
chartText.SetLineSpacing(textStyle.lineSpacing);
|
||||
chartText.SetActive(textStyle.show);
|
||||
|
||||
RectTransform rect = GetOrAddComponent<RectTransform>(txtObj);
|
||||
RectTransform rect = EnsureComponent<RectTransform>(txtObj);
|
||||
rect.localPosition = Vector3.zero;
|
||||
rect.sizeDelta = sizeDelta;
|
||||
rect.anchorMin = anchorMin;
|
||||
@@ -287,7 +314,7 @@ namespace XCharts.Runtime
|
||||
var painterObj = ChartHelper.AddObject(name, parent, anchorMin, anchorMax, pivot, sizeDelta);
|
||||
painterObj.hideFlags = hideFlags;
|
||||
painterObj.transform.SetSiblingIndex(siblingIndex);
|
||||
return ChartHelper.GetOrAddComponent<Painter>(painterObj);
|
||||
return ChartHelper.EnsureComponent<Painter>(painterObj);
|
||||
}
|
||||
|
||||
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 sizeDelta = new Vector2(width, height);
|
||||
GameObject iconObj = AddObject(name, parent, anchorMin, anchorMax, pivot, sizeDelta);
|
||||
var img = GetOrAddComponent<Image>(iconObj);
|
||||
var img = EnsureComponent<Image>(iconObj);
|
||||
if (img.raycastTarget != false)
|
||||
img.raycastTarget = false;
|
||||
if (img.type != type)
|
||||
@@ -362,7 +389,7 @@ namespace XCharts.Runtime
|
||||
var alignment = textStyle.GetAlignment(autoAlignment);
|
||||
UpdateAnchorAndPivotByTextAlignment(alignment, out anchorMin, out anchorMax, out pivot);
|
||||
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,
|
||||
sizeDelta, textStyle, theme, autoColor, autoAlignment, label.text);
|
||||
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);
|
||||
var vector0_5 = new Vector2(0.5f, 0.5f);
|
||||
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,
|
||||
sizeDelta, textStyle, theme, autoColor, autoAlignment, label.text);
|
||||
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,
|
||||
UnityEngine.Events.UnityAction<BaseEventData> call)
|
||||
{
|
||||
EventTrigger trigger = GetOrAddComponent<EventTrigger>(obj.gameObject);
|
||||
EventTrigger trigger = EnsureComponent<EventTrigger>(obj.gameObject);
|
||||
EventTrigger.Entry entry = new EventTrigger.Entry();
|
||||
entry.eventID = type;
|
||||
entry.callback = new EventTrigger.TriggerEvent();
|
||||
|
||||
@@ -189,7 +189,7 @@ namespace XCharts.Runtime
|
||||
{
|
||||
if (m_SerieRoot != null)
|
||||
{
|
||||
var rect = ChartHelper.GetOrAddComponent<RectTransform>(m_SerieRoot);
|
||||
var rect = ChartHelper.EnsureComponent<RectTransform>(m_SerieRoot);
|
||||
rect.localPosition = Vector3.zero;
|
||||
rect.sizeDelta = chart.chartSizeDelta;
|
||||
rect.anchorMin = chart.chartMinAnchor;
|
||||
|
||||
Reference in New Issue
Block a user