21 [SerializeField]
private bool m_Show =
true;
22 [SerializeField]
private string m_Formatter;
23 [SerializeField]
private int m_Interval = 0;
24 [SerializeField]
private bool m_Inside =
false;
25 [SerializeField]
private float m_Margin;
26 [SerializeField]
private string m_NumericFormatter =
"";
27 [SerializeField]
private bool m_ShowAsPositiveNumber =
false;
28 [SerializeField]
private bool m_OnZero =
false;
29 [SerializeField]
private float m_Width = 0f;
30 [SerializeField]
private float m_Height = 0f;
31 [SerializeField]
private bool m_ShowStartLabel =
true;
32 [SerializeField]
private bool m_ShowEndLabel =
true;
43 get {
return m_Show; }
44 set {
if (PropertyUtil.SetStruct(ref m_Show, value)) SetComponentDirty(); }
52 get {
return m_Interval; }
53 set {
if (PropertyUtil.SetStruct(ref m_Interval, value)) SetComponentDirty(); }
61 get {
return m_Inside; }
62 set {
if (PropertyUtil.SetStruct(ref m_Inside, value)) SetComponentDirty(); }
70 get {
return m_Margin; }
71 set {
if (PropertyUtil.SetStruct(ref m_Margin, value)) SetComponentDirty(); }
79 get {
return m_Formatter; }
80 set {
if (PropertyUtil.SetClass(ref m_Formatter, value)) SetComponentDirty(); }
92 get {
return m_NumericFormatter; }
93 set {
if (PropertyUtil.SetClass(ref m_NumericFormatter, value)) SetComponentDirty(); }
102 get {
return m_ShowAsPositiveNumber; }
103 set {
if (PropertyUtil.SetStruct(ref m_ShowAsPositiveNumber, value)) SetComponentDirty(); }
111 get {
return m_OnZero; }
112 set {
if (PropertyUtil.SetStruct(ref m_OnZero, value)) SetComponentDirty(); }
119 get {
return m_Width; }
120 set {
if (PropertyUtil.SetStruct(ref m_Width, value)) SetComponentDirty(); }
127 get {
return m_Height; }
128 set {
if (PropertyUtil.SetStruct(ref m_Height, value)) SetComponentDirty(); }
136 get {
return m_ShowStartLabel; }
137 set {
if (PropertyUtil.SetStruct(ref m_ShowStartLabel, value)) SetComponentDirty(); }
145 get {
return m_ShowEndLabel; }
146 set {
if (PropertyUtil.SetStruct(ref m_ShowEndLabel, value)) SetComponentDirty(); }
153 get {
return m_TextLimit; }
154 set {
if (value !=
null) { m_TextLimit = value; SetComponentDirty(); } }
163 get {
return m_TextStyle; }
164 set {
if (PropertyUtil.SetClass(ref m_TextStyle, value)) SetComponentDirty(); }
169 set { m_FormatterFunction = value; }
172 public override bool componentDirty {
get {
return m_ComponentDirty || m_TextLimit.
componentDirty; } }
173 public override void ClearComponentDirty()
175 base.ClearComponentDirty();
179 public static AxisLabel defaultAxisLabel
183 return new AxisLabel()
189 m_TextStyle =
new TextStyle(),
194 public AxisLabel Clone()
196 var axisLabel =
new AxisLabel();
197 axisLabel.show =
show;
200 axisLabel.inside =
inside;
201 axisLabel.margin =
margin;
203 axisLabel.width =
width;
204 axisLabel.height =
height;
212 public void Copy(AxisLabel axisLabel)
214 show = axisLabel.show;
217 inside = axisLabel.inside;
218 margin = axisLabel.margin;
220 width = axisLabel.width;
221 height = axisLabel.height;
228 public void SetRelatedText(ChartText txt,
float labelWidth)
230 m_TextLimit.SetRelatedText(txt, labelWidth);
233 public string GetFormatterContent(
int labelIndex,
string category)
235 if (m_FormatterFunction !=
null)
237 return m_FormatterFunction(labelIndex, 0, category);
239 if (
string.IsNullOrEmpty(category))
return category;
240 if (
string.IsNullOrEmpty(m_Formatter))
242 return m_TextLimit.GetLimitContent(category);
246 var content = m_Formatter;
247 FormatterHelper.ReplaceAxisLabelContent(ref content, category);
248 return m_TextLimit.GetLimitContent(content);
252 public string GetFormatterContent(
int labelIndex,
double value,
double minValue,
double maxValue,
bool isLog =
false)
256 value = Math.Abs(value);
258 if (m_FormatterFunction !=
null)
260 return m_FormatterFunction(labelIndex, value,
null);
262 if (
string.IsNullOrEmpty(m_Formatter))
268 if (minValue >= -1 && minValue <= 1 && maxValue >= -1 && maxValue <= 1)
270 int minAcc = ChartHelper.GetFloatAccuracy(minValue);
271 int maxAcc = ChartHelper.GetFloatAccuracy(maxValue);
272 int curAcc = ChartHelper.GetFloatAccuracy(value);
273 int acc = Mathf.Max(Mathf.Max(minAcc, maxAcc), curAcc);
280 var content = m_Formatter;
281 FormatterHelper.ReplaceAxisLabelContent(ref content,
numericFormatter, value);
286 public string GetFormatterDateTime(
int labelIndex,
double value)
288 if (m_FormatterFunction !=
null)
290 return m_FormatterFunction(labelIndex, value,
null);
292 var timestamp = (int)value;
293 var dateTime = DateTimeUtil.GetDateTime(timestamp);
295 if (!
string.IsNullOrEmpty(m_Formatter))
297 var content = m_Formatter;
298 FormatterHelper.ReplaceAxisLabelContent(ref content, dateTime.ToString(format));
299 return m_TextLimit.GetLimitContent(content);
303 var content = dateTime.ToString(format);
304 return m_TextLimit.GetLimitContent(content);