mirror of
https://github.com/XCharts-Team/XCharts.git
synced 2026-05-30 13:28:47 +00:00
增加BaseChart的TriggerTooltip()接口尝试触发ToolTip
This commit is contained in:
@@ -204,6 +204,7 @@ Inherits or Implemented: [BaseGraph](#basegraph),[ISerializationCallbackReceiver
|
|||||||
|CanAddChartComponent()||public bool CanAddChartComponent(Type type)|
|
|CanAddChartComponent()||public bool CanAddChartComponent(Type type)|
|
||||||
|CanAddSerie()||public bool CanAddSerie(Type type)|
|
|CanAddSerie()||public bool CanAddSerie(Type type)|
|
||||||
|CanAddSerie<T>()||public bool CanAddSerie<T>() where T : Serie|
|
|CanAddSerie<T>()||public bool CanAddSerie<T>() where T : Serie|
|
||||||
|
|CancelTooltip()|v3.7.0|public void CancelTooltip()<br/>cancel tooltip. |
|
||||||
|CanMultipleComponent()||public bool CanMultipleComponent(Type type)|
|
|CanMultipleComponent()||public bool CanMultipleComponent(Type type)|
|
||||||
|ClampInChart()||public void ClampInChart(ref Vector3 pos)|
|
|ClampInChart()||public void ClampInChart(ref Vector3 pos)|
|
||||||
|ClampInGrid()||public Vector3 ClampInGrid(GridCoord grid, Vector3 pos)|
|
|ClampInGrid()||public Vector3 ClampInGrid(GridCoord grid, Vector3 pos)|
|
||||||
@@ -319,6 +320,8 @@ Inherits or Implemented: [BaseGraph](#basegraph),[ISerializationCallbackReceiver
|
|||||||
|SetSeriePainterMaterial()||public void SetSeriePainterMaterial(Material material)<br/>设置Serie Painter的材质球 |
|
|SetSeriePainterMaterial()||public void SetSeriePainterMaterial(Material material)<br/>设置Serie Painter的材质球 |
|
||||||
|SetTopPainterMaterial()||public void SetTopPainterMaterial(Material material)<br/>设置Top Painter的材质球 |
|
|SetTopPainterMaterial()||public void SetTopPainterMaterial(Material material)<br/>设置Top Painter的材质球 |
|
||||||
|SetUpperPainterMaterial()||public void SetUpperPainterMaterial(Material material)<br/>设置Upper Painter的材质球 |
|
|SetUpperPainterMaterial()||public void SetUpperPainterMaterial(Material material)<br/>设置Upper Painter的材质球 |
|
||||||
|
|TriggerTooltip()|v3.7.0|public bool TriggerTooltip(int dataIndex)<br/>trigger tooltip by data index. |
|
||||||
|
|TriggerTooltip()|v3.7.0|public bool TriggerTooltip(Vector3 localPosition)<br/>trigger tooltip by chart local position. |
|
||||||
|TryAddChartComponent()||public bool TryAddChartComponent(Type type)|
|
|TryAddChartComponent()||public bool TryAddChartComponent(Type type)|
|
||||||
|TryAddChartComponent<T>()||public bool TryAddChartComponent<T>() where T : MainComponent|
|
|TryAddChartComponent<T>()||public bool TryAddChartComponent<T>() where T : MainComponent|
|
||||||
|TryAddChartComponent<T>()||public bool TryAddChartComponent<T>(out T component) where T : MainComponent|
|
|TryAddChartComponent<T>()||public bool TryAddChartComponent<T>(out T component) where T : MainComponent|
|
||||||
@@ -355,6 +358,8 @@ Inherits or Implemented: [MaskableGraphic](#maskablegraphic),[IPointerDownHandle
|
|||||||
|onPointerUp||public Action<PointerEventData, BaseGraph> onPointerUp<br/>鼠标弹起回调。 |
|
|onPointerUp||public Action<PointerEventData, BaseGraph> onPointerUp<br/>鼠标弹起回调。 |
|
||||||
|onScroll||public Action<PointerEventData, BaseGraph> onScroll<br/>鼠标滚动回调。 |
|
|onScroll||public Action<PointerEventData, BaseGraph> onScroll<br/>鼠标滚动回调。 |
|
||||||
|CheckWarning()||public string CheckWarning()<br/>检测警告信息。 |
|
|CheckWarning()||public string CheckWarning()<br/>检测警告信息。 |
|
||||||
|
|LocalPointToScreenPoint()|v3.7.0|public Vector2 LocalPointToScreenPoint(Vector2 localPoint)<br/>chart local point to screen point. |
|
||||||
|
|LocalPointToWorldPoint()|v3.7.0|public Vector2 LocalPointToWorldPoint(Vector2 localPoint)<br/>chart local point to world point. |
|
||||||
|OnBeginDrag()||public virtual void OnBeginDrag(PointerEventData eventData)|
|
|OnBeginDrag()||public virtual void OnBeginDrag(PointerEventData eventData)|
|
||||||
|OnDrag()||public virtual void OnDrag(PointerEventData eventData)|
|
|OnDrag()||public virtual void OnDrag(PointerEventData eventData)|
|
||||||
|OnEndDrag()||public virtual void OnEndDrag(PointerEventData eventData)|
|
|OnEndDrag()||public virtual void OnEndDrag(PointerEventData eventData)|
|
||||||
|
|||||||
@@ -204,6 +204,7 @@ Inherits or Implemented: [BaseGraph](#basegraph),[ISerializationCallbackReceiver
|
|||||||
|CanAddChartComponent()||public bool CanAddChartComponent(Type type)|
|
|CanAddChartComponent()||public bool CanAddChartComponent(Type type)|
|
||||||
|CanAddSerie()||public bool CanAddSerie(Type type)|
|
|CanAddSerie()||public bool CanAddSerie(Type type)|
|
||||||
|CanAddSerie<T>()||public bool CanAddSerie<T>() where T : Serie|
|
|CanAddSerie<T>()||public bool CanAddSerie<T>() where T : Serie|
|
||||||
|
|CancelTooltip()|v3.7.0|public void CancelTooltip()<br/>取消Tooltip. |
|
||||||
|CanMultipleComponent()||public bool CanMultipleComponent(Type type)|
|
|CanMultipleComponent()||public bool CanMultipleComponent(Type type)|
|
||||||
|ClampInChart()||public void ClampInChart(ref Vector3 pos)|
|
|ClampInChart()||public void ClampInChart(ref Vector3 pos)|
|
||||||
|ClampInGrid()||public Vector3 ClampInGrid(GridCoord grid, Vector3 pos)|
|
|ClampInGrid()||public Vector3 ClampInGrid(GridCoord grid, Vector3 pos)|
|
||||||
@@ -319,6 +320,8 @@ Inherits or Implemented: [BaseGraph](#basegraph),[ISerializationCallbackReceiver
|
|||||||
|SetSeriePainterMaterial()||public void SetSeriePainterMaterial(Material material)<br/>设置Serie Painter的材质球 |
|
|SetSeriePainterMaterial()||public void SetSeriePainterMaterial(Material material)<br/>设置Serie Painter的材质球 |
|
||||||
|SetTopPainterMaterial()||public void SetTopPainterMaterial(Material material)<br/>设置Top Painter的材质球 |
|
|SetTopPainterMaterial()||public void SetTopPainterMaterial(Material material)<br/>设置Top Painter的材质球 |
|
||||||
|SetUpperPainterMaterial()||public void SetUpperPainterMaterial(Material material)<br/>设置Upper Painter的材质球 |
|
|SetUpperPainterMaterial()||public void SetUpperPainterMaterial(Material material)<br/>设置Upper Painter的材质球 |
|
||||||
|
|TriggerTooltip()|v3.7.0|public bool TriggerTooltip(int dataIndex)<br/>尝试触发指定数据项的Tooltip. |
|
||||||
|
|TriggerTooltip()|v3.7.0|public bool TriggerTooltip(Vector3 localPosition)<br/>在指定的位置尝试触发Tooltip. |
|
||||||
|TryAddChartComponent()||public bool TryAddChartComponent(Type type)|
|
|TryAddChartComponent()||public bool TryAddChartComponent(Type type)|
|
||||||
|TryAddChartComponent<T>()||public bool TryAddChartComponent<T>() where T : MainComponent|
|
|TryAddChartComponent<T>()||public bool TryAddChartComponent<T>() where T : MainComponent|
|
||||||
|TryAddChartComponent<T>()||public bool TryAddChartComponent<T>(out T component) where T : MainComponent|
|
|TryAddChartComponent<T>()||public bool TryAddChartComponent<T>(out T component) where T : MainComponent|
|
||||||
@@ -355,6 +358,8 @@ Inherits or Implemented: [MaskableGraphic](#maskablegraphic),[IPointerDownHandle
|
|||||||
|onPointerUp||public Action<PointerEventData, BaseGraph> onPointerUp<br/>鼠标弹起回调。 |
|
|onPointerUp||public Action<PointerEventData, BaseGraph> onPointerUp<br/>鼠标弹起回调。 |
|
||||||
|onScroll||public Action<PointerEventData, BaseGraph> onScroll<br/>鼠标滚动回调。 |
|
|onScroll||public Action<PointerEventData, BaseGraph> onScroll<br/>鼠标滚动回调。 |
|
||||||
|CheckWarning()||public string CheckWarning()<br/>检测警告信息。 |
|
|CheckWarning()||public string CheckWarning()<br/>检测警告信息。 |
|
||||||
|
|LocalPointToScreenPoint()|v3.7.0|public Vector2 LocalPointToScreenPoint(Vector2 localPoint)<br/>图表内坐标转屏幕坐标。 |
|
||||||
|
|LocalPointToWorldPoint()|v3.7.0|public Vector2 LocalPointToWorldPoint(Vector2 localPoint)<br/>图表内坐标转世界坐标。 |
|
||||||
|OnBeginDrag()||public virtual void OnBeginDrag(PointerEventData eventData)|
|
|OnBeginDrag()||public virtual void OnBeginDrag(PointerEventData eventData)|
|
||||||
|OnDrag()||public virtual void OnDrag(PointerEventData eventData)|
|
|OnDrag()||public virtual void OnDrag(PointerEventData eventData)|
|
||||||
|OnEndDrag()||public virtual void OnEndDrag(PointerEventData eventData)|
|
|OnEndDrag()||public virtual void OnEndDrag(PointerEventData eventData)|
|
||||||
|
|||||||
@@ -66,6 +66,7 @@ slug: /changelog
|
|||||||
|
|
||||||
## master
|
## master
|
||||||
|
|
||||||
|
* (2023.04.14) 增加`BaseChart`的`TriggerTooltip()`接口尝试触发`ToolTip`
|
||||||
* (2023.04.12) 优化`RadarCood`设置`startAngle`时文本也跟随调整位置
|
* (2023.04.12) 优化`RadarCood`设置`startAngle`时文本也跟随调整位置
|
||||||
* (2023.04.12) 增加`Radar`对通配符`{b}`的支持
|
* (2023.04.12) 增加`Radar`对通配符`{b}`的支持
|
||||||
* (2023.04.11) 修复动态添加组件时`Inspector`可能异常的问题
|
* (2023.04.11) 修复动态添加组件时`Inspector`可能异常的问题
|
||||||
|
|||||||
@@ -667,5 +667,64 @@ namespace XCharts.Runtime
|
|||||||
SerieHelper.GetItemColor(out color, out toColor, serie, null, m_Theme);
|
SerieHelper.GetItemColor(out color, out toColor, serie, null, m_Theme);
|
||||||
return color;
|
return color;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// trigger tooltip by data index.
|
||||||
|
/// |尝试触发指定数据项的Tooltip.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="dataIndex">数据项索引</param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[Since("v3.7.0")]
|
||||||
|
public bool TriggerTooltip(int dataIndex)
|
||||||
|
{
|
||||||
|
var serie = GetSerie(0);
|
||||||
|
if (serie == null) return false;
|
||||||
|
var dataPoints = serie.context.dataPoints;
|
||||||
|
var dataPoint = Vector3.zero;
|
||||||
|
if (dataPoints.Count == 0)
|
||||||
|
{
|
||||||
|
if (serie.dataCount == 0) return false;
|
||||||
|
dataIndex = dataIndex % serie.dataCount;
|
||||||
|
var serieData = serie.GetSerieData(dataIndex);
|
||||||
|
if (serieData == null) return false;
|
||||||
|
dataPoint = serie.GetSerieData(dataIndex).context.position;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
dataIndex = dataIndex % dataPoints.Count;
|
||||||
|
dataPoint = dataPoints[dataIndex];
|
||||||
|
}
|
||||||
|
return TriggerTooltip(dataPoint);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// trigger tooltip by chart local position.
|
||||||
|
/// |在指定的位置尝试触发Tooltip.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="localPosition"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[Since("v3.7.0")]
|
||||||
|
public bool TriggerTooltip(Vector3 localPosition)
|
||||||
|
{
|
||||||
|
var screenPoint = LocalPointToScreenPoint(localPosition);
|
||||||
|
var eventData = new PointerEventData(EventSystem.current);
|
||||||
|
eventData.position = screenPoint;
|
||||||
|
OnPointerEnter(eventData);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// cancel tooltip.
|
||||||
|
/// |取消Tooltip.
|
||||||
|
/// </summary>
|
||||||
|
[Since("v3.7.0")]
|
||||||
|
public void CancelTooltip()
|
||||||
|
{
|
||||||
|
var tooltip = GetChartComponent<Tooltip>();
|
||||||
|
if (tooltip != null)
|
||||||
|
{
|
||||||
|
tooltip.SetActive(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -173,6 +173,32 @@ namespace XCharts.Runtime
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// chart local point to screen point.
|
||||||
|
/// |图表内坐标转屏幕坐标。
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="localPoint">图表内的坐标</param>
|
||||||
|
/// <returns>屏幕坐标</returns>
|
||||||
|
[Since("v3.7.0")]
|
||||||
|
public Vector2 LocalPointToScreenPoint(Vector2 localPoint)
|
||||||
|
{
|
||||||
|
var cam = canvas.renderMode == RenderMode.ScreenSpaceOverlay ? null : canvas.worldCamera;
|
||||||
|
var wordPoint = rectTransform.TransformPoint(localPoint);
|
||||||
|
return RectTransformUtility.WorldToScreenPoint(cam, wordPoint);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// chart local point to world point.
|
||||||
|
/// |图表内坐标转世界坐标。
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="localPoint">图表内的坐标</param>
|
||||||
|
/// <returns>世界坐标</returns>
|
||||||
|
[Since("v3.7.0")]
|
||||||
|
public Vector2 LocalPointToWorldPoint(Vector2 localPoint)
|
||||||
|
{
|
||||||
|
return rectTransform.TransformPoint(localPoint);
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 保存图表为图片。
|
/// 保存图表为图片。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -233,10 +233,12 @@ namespace XCharts.Runtime
|
|||||||
serieData.context.currentAngle = serieData.context.toAngle;
|
serieData.context.currentAngle = serieData.context.toAngle;
|
||||||
}
|
}
|
||||||
var halfDegree = (serieData.context.toAngle - startDegree) / 2;
|
var halfDegree = (serieData.context.toAngle - startDegree) / 2;
|
||||||
|
var halfRadius = serie.context.insideRadius + (serieData.context.outsideRadius - serie.context.insideRadius) / 2;
|
||||||
serieData.context.halfAngle = startDegree + halfDegree;
|
serieData.context.halfAngle = startDegree + halfDegree;
|
||||||
serieData.context.angle = startDegree + halfDegree;
|
serieData.context.angle = startDegree + halfDegree;
|
||||||
serieData.context.offsetCenter = serie.context.center;
|
serieData.context.offsetCenter = serie.context.center;
|
||||||
serieData.context.insideRadius = serie.context.insideRadius;
|
serieData.context.insideRadius = serie.context.insideRadius;
|
||||||
|
serieData.context.position = ChartHelper.GetPosition(serie.context.center, serieData.context.halfAngle, halfRadius);
|
||||||
if (offset > 0)
|
if (offset > 0)
|
||||||
{
|
{
|
||||||
var currRad = serieData.context.halfAngle * Mathf.Deg2Rad;
|
var currRad = serieData.context.halfAngle * Mathf.Deg2Rad;
|
||||||
|
|||||||
Reference in New Issue
Block a user