protected override void RefreshTooltip() { base.RefreshTooltip(); int index = m_Tooltip.dataIndex - 1; Axis tempAxis = m_XAxis.type == Axis.AxisType.Value ? (Axis)m_YAxis : (Axis)m_XAxis; if (index < 0) { m_Tooltip.SetActive(false); return; } m_Tooltip.SetActive(true); if (m_Series.Count == 1) { string txt = tempAxis.GetData(index) + ": " + m_Series.GetData(0, index); m_Tooltip.UpdateTooltipText(txt); } else { StringBuilder sb = new StringBuilder(tempAxis.GetData(index)); for (int i = 0; i < m_Series.Count; i++) { if (m_Series.series[i].show) { string strColor = ColorUtility.ToHtmlStringRGBA(m_ThemeInfo.GetColor(i)); string key = m_Series.series[i].name; float value = m_Series.series[i].data[index]; sb.Append("\n"); sb.AppendFormat("<color=#{0}>● </color>", strColor); sb.AppendFormat("{0}: {1}", key, value); } } m_Tooltip.UpdateTooltipText(sb.ToString()); } var pos = m_Tooltip.GetPos(); if (pos.x + m_Tooltip.width > chartWidth) { pos.x = chartWidth - m_Tooltip.width; } if (pos.y - m_Tooltip.height < 0) { pos.y = m_Tooltip.height; } m_Tooltip.UpdatePos(pos); }
protected override void RefreshTooltip() { base.RefreshTooltip(); int index = m_Tooltip.dataIndex - 1; Axis tempAxis = m_XAxis.type == Axis.AxisType.Value ? (Axis)m_YAxis : (Axis)m_XAxis; if (index < 0) { m_Tooltip.SetActive(false); return; } m_Tooltip.SetActive(true); if (m_Series.Count == 1) { float value = m_Series.GetData(0, index); string txt = tempAxis.GetData(index) + ": " + value; m_Tooltip.UpdateContentText(txt); } else { StringBuilder sb = new StringBuilder(tempAxis.GetData(index)); for (int i = 0; i < m_Series.Count; i++) { if (m_Series.series[i].show) { string strColor = ColorUtility.ToHtmlStringRGBA(m_ThemeInfo.GetColor(i)); string key = m_Series.series[i].name; float value = m_Series.series[i].data[index]; sb.Append("\n"); sb.AppendFormat("<color=#{0}>● </color>", strColor); sb.AppendFormat("{0}: {1}", key, value); } } m_Tooltip.UpdateContentText(sb.ToString()); } if (m_XAxis.type == Axis.AxisType.Value) { float hig = (maxValue - minValue) * (m_Tooltip.pointerPos.x - zeroX) / coordinateWid; m_Tooltip.UpdateLabelText(hig.ToString("f2"), tempAxis.GetData(index)); float splitWidth = m_YAxis.GetSplitWidth(coordinateHig); float py = zeroY + (m_Tooltip.dataIndex - 1) * splitWidth + (m_YAxis.boundaryGap ? splitWidth / 2 : 0); Vector2 xLabelPos = new Vector2(m_Tooltip.pointerPos.x, coordinateY - 4 * m_Coordinate.tickness); Vector2 yLabelPos = new Vector2(coordinateX - 6 * m_Coordinate.tickness, py); m_Tooltip.UpdateLabelPos(xLabelPos, yLabelPos); } else { float hig = (maxValue - minValue) * (m_Tooltip.pointerPos.y - zeroY) / coordinateHig; m_Tooltip.UpdateLabelText(tempAxis.GetData(index), hig.ToString("f2")); float splitWidth = m_XAxis.GetSplitWidth(coordinateWid); float px = zeroX + (m_Tooltip.dataIndex - 1) * splitWidth + (m_XAxis.boundaryGap ? splitWidth / 2 : 0); Vector2 xLabelPos = new Vector2(px, coordinateY - 6 * m_Coordinate.tickness); Vector2 yLabelPos = new Vector2(coordinateX - 4 * m_Coordinate.tickness, m_Tooltip.pointerPos.y); m_Tooltip.UpdateLabelPos(xLabelPos, yLabelPos); } var pos = m_Tooltip.GetContentPos(); if (pos.x + m_Tooltip.width > chartWidth) { pos.x = chartWidth - m_Tooltip.width; } if (pos.y - m_Tooltip.height < 0) { pos.y = m_Tooltip.height; } m_Tooltip.UpdateContentPos(pos); }