Files
XCharts/Examples/Example_Dynamic.cs

70 lines
2.2 KiB
C#
Raw Normal View History

using System;
using UnityEngine;
2022-02-19 22:37:57 +08:00
using XCharts.Runtime;
2021-12-24 13:33:09 +08:00
namespace XCharts.Example
{
[DisallowMultipleComponent]
2021-12-31 13:00:17 +08:00
//[ExecuteInEditMode]
[RequireComponent(typeof(BaseChart))]
public class Example_Dynamic : MonoBehaviour
{
public int maxCacheDataNumber = 100;
public float initDataTime = 2;
public bool insertDataToHead = false;
2021-12-31 13:00:17 +08:00
private BaseChart chart;
private float updateTime;
private float initTime;
private int initCount;
private int count;
private bool isInited;
private DateTime timeNow;
void Awake()
{
2021-12-31 13:00:17 +08:00
chart = gameObject.GetComponent<BaseChart>();
var serie = chart.GetSerie(0);
serie.symbol.show = false;
serie.maxCache = maxCacheDataNumber;
2021-11-23 13:20:07 +08:00
var xAxis = chart.EnsureChartComponent<XAxis>();
2021-11-23 13:20:07 +08:00
xAxis.maxCache = maxCacheDataNumber;
timeNow = DateTime.Now;
timeNow = timeNow.AddSeconds(-maxCacheDataNumber);
serie.insertDataToHead = insertDataToHead;
2021-11-23 13:20:07 +08:00
xAxis.insertDataToHead = insertDataToHead;
}
void Update()
{
if (initCount < maxCacheDataNumber)
{
2022-05-22 22:17:38 +08:00
int count = (int) (maxCacheDataNumber / initDataTime * Time.deltaTime);
for (int i = 0; i < count; i++)
{
timeNow = timeNow.AddSeconds(1);
2021-11-23 13:20:07 +08:00
var category = timeNow.ToString("hh:mm:ss");
var value = UnityEngine.Random.Range(60, 150);
chart.AddXAxisData(category);
chart.AddData(0, value);
initCount++;
if (initCount > maxCacheDataNumber) break;
}
chart.RefreshChart();
}
updateTime += Time.deltaTime;
if (updateTime >= 1)
{
2021-11-23 13:20:07 +08:00
var category = DateTime.Now.ToString("hh:mm:ss");
var value = UnityEngine.Random.Range(60, 150);
updateTime = 0;
count++;
chart.AddXAxisData(category);
chart.AddData(0, value);
chart.RefreshChart();
}
}
}
}