mirror of
https://github.com/XCharts-Team/XCharts.git
synced 2026-05-18 06:20:15 +00:00
0.2版本,重构代码,增加Editor
This commit is contained in:
67
Demo/Scripts/Demo_LargeData.cs
Normal file
67
Demo/Scripts/Demo_LargeData.cs
Normal file
@@ -0,0 +1,67 @@
|
||||
using UnityEngine;
|
||||
using XCharts;
|
||||
|
||||
public class Demo_LargeData : MonoBehaviour
|
||||
{
|
||||
public int maxCacheDataNumber = 3000;
|
||||
public float initDataTime = 5;
|
||||
|
||||
private CoordinateChart chart;
|
||||
private float initTime;
|
||||
private int initCount;
|
||||
private System.DateTime timeNow;
|
||||
|
||||
void Awake()
|
||||
{
|
||||
chart = gameObject.GetComponentInChildren<CoordinateChart>();
|
||||
timeNow = System.DateTime.Now;
|
||||
chart.xAxis.ClearData();
|
||||
chart.series.ClearData();
|
||||
chart.maxCacheDataNumber = maxCacheDataNumber;
|
||||
initCount = maxCacheDataNumber;
|
||||
}
|
||||
|
||||
void Update()
|
||||
{
|
||||
if (initCount>0)
|
||||
{
|
||||
int count = (int)(maxCacheDataNumber / initDataTime * Time.deltaTime);
|
||||
for(int i = 0; i < count; i++)
|
||||
{
|
||||
timeNow = timeNow.AddSeconds(-initCount);
|
||||
chart.AddXAxisData(timeNow.ToString("hh:mm:ss"));
|
||||
chart.AddData(0, UnityEngine.Random.Range(60, 150));
|
||||
initCount--;
|
||||
if (initCount <= 0) break;
|
||||
}
|
||||
chart.RefreshChart();
|
||||
}
|
||||
}
|
||||
|
||||
void GenerateData(int count, CoordinateChart chart)
|
||||
{
|
||||
var baseValue = Random.Range(0, 1000);
|
||||
var time = new System.DateTime(2011, 1, 1);
|
||||
var smallBaseValue = 0;
|
||||
|
||||
chart.xAxis.ClearData();
|
||||
for (var i = 0; i < count; i++)
|
||||
{
|
||||
chart.AddXAxisData(time.ToString("hh:mm:ss"));
|
||||
|
||||
smallBaseValue = i % 30 == 0
|
||||
? Random.Range(0, 700)
|
||||
: (smallBaseValue + Random.Range(0, 500) - 250);
|
||||
baseValue += Random.Range(0, 20) - 10;
|
||||
float value = Mathf.Max(
|
||||
0,
|
||||
Mathf.Round(baseValue + smallBaseValue) + 3000
|
||||
);
|
||||
//var index = i % 100;
|
||||
//var value = (Mathf.Sin(index / 5) * (index / 5 - 10) + index / 6) * 5;
|
||||
value = Mathf.Abs(value);
|
||||
chart.AddData(0, value);
|
||||
time = time.AddSeconds(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user