2021-12-24 13:33:09 +08:00
|
|
|
|
|
2019-10-22 04:09:04 +08:00
|
|
|
|
using System;
|
|
|
|
|
|
using UnityEngine;
|
2022-02-19 22:37:57 +08:00
|
|
|
|
using XCharts.Runtime;
|
2019-10-22 04:09:04 +08:00
|
|
|
|
|
2021-12-24 13:33:09 +08:00
|
|
|
|
namespace XCharts.Example
|
2019-10-22 04:09:04 +08:00
|
|
|
|
{
|
|
|
|
|
|
[DisallowMultipleComponent]
|
2021-12-31 13:00:17 +08:00
|
|
|
|
//[ExecuteInEditMode]
|
|
|
|
|
|
[RequireComponent(typeof(BaseChart))]
|
2020-05-15 06:52:40 +08:00
|
|
|
|
public class Example_Dynamic : MonoBehaviour
|
2019-10-22 04:09:04 +08:00
|
|
|
|
{
|
|
|
|
|
|
public int maxCacheDataNumber = 100;
|
|
|
|
|
|
public float initDataTime = 2;
|
2021-05-21 07:24:02 +08:00
|
|
|
|
public bool insertDataToHead = false;
|
2019-10-22 04:09:04 +08:00
|
|
|
|
|
2021-12-31 13:00:17 +08:00
|
|
|
|
private BaseChart chart;
|
2019-10-22 04:09:04 +08:00
|
|
|
|
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);
|
2020-06-17 12:46:04 +08:00
|
|
|
|
serie.symbol.show = false;
|
2019-10-22 04:09:04 +08:00
|
|
|
|
serie.maxCache = maxCacheDataNumber;
|
2021-11-23 13:20:07 +08:00
|
|
|
|
|
|
|
|
|
|
var xAxis = chart.GetOrAddChartComponent<XAxis>();
|
|
|
|
|
|
xAxis.maxCache = maxCacheDataNumber;
|
2019-10-22 04:09:04 +08:00
|
|
|
|
timeNow = DateTime.Now;
|
|
|
|
|
|
timeNow = timeNow.AddSeconds(-maxCacheDataNumber);
|
2021-05-21 07:24:02 +08:00
|
|
|
|
|
|
|
|
|
|
serie.insertDataToHead = insertDataToHead;
|
2021-11-23 13:20:07 +08:00
|
|
|
|
xAxis.insertDataToHead = insertDataToHead;
|
2019-10-22 04:09:04 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void Update()
|
|
|
|
|
|
{
|
|
|
|
|
|
if (initCount < maxCacheDataNumber)
|
|
|
|
|
|
{
|
|
|
|
|
|
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);
|
2019-10-22 04:09:04 +08:00
|
|
|
|
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);
|
2019-10-22 04:09:04 +08:00
|
|
|
|
updateTime = 0;
|
|
|
|
|
|
count++;
|
|
|
|
|
|
chart.AddXAxisData(category);
|
|
|
|
|
|
chart.AddData(0, value);
|
|
|
|
|
|
chart.RefreshChart();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|