Files
XCharts/Examples/Runtime/Example90_Candlestick.cs

69 lines
1.9 KiB
C#
Raw Normal View History

2021-12-24 13:33:09 +08:00

2021-03-10 13:03:36 +08:00
using UnityEngine;
2021-12-24 13:33:09 +08:00
namespace XCharts.Example
2021-03-10 13:03:36 +08:00
{
[DisallowMultipleComponent]
[ExecuteInEditMode]
public class Example90_Candlestick : MonoBehaviour
{
private CandlestickChart chart;
private float updateTime;
public int dataCount = 100;
2021-03-10 13:03:36 +08:00
void Awake()
{
chart = gameObject.GetComponent<CandlestickChart>();
if (chart == null)
{
chart = gameObject.AddComponent<CandlestickChart>();
}
GenerateOHLC(dataCount);
2021-03-10 13:03:36 +08:00
}
void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
AddData();
}
}
void AddData()
{
}
void GenerateOHLC(int count)
{
chart.ClearData();
var xValue = System.DateTime.Now;
var baseValue = Random.Range(0f, 1f) * 12000;
var boxVals = new float[4];
var dayRange = 12;
for (int i = 0; i < count; i++)
{
baseValue = baseValue + Random.Range(0f,1f) * 30 - 10;
for(int j=0;j< 4;j++){
boxVals[j] = (Random.Range(0f,1f) - 0.5f) * dayRange + baseValue;
}
System.Array.Sort(boxVals);
var openIdx = Mathf.RoundToInt(Random.Range(0f,1f) * 3);
var closeIdx = Mathf.RoundToInt(Random.Range(0f,1f) * 2);
if(openIdx == closeIdx){
closeIdx ++;
}
2021-04-13 10:12:02 +08:00
//var volumn = boxVals[3]*(1000+Random.Range(0f,1f) * 500);
2021-03-10 13:03:36 +08:00
var open = boxVals[openIdx];
var close = boxVals[closeIdx];
var lowest = boxVals[0];
var heighest = boxVals[3];
chart.AddXAxisData(i.ToString());
chart.AddData(0,open,close,lowest,heighest);
}
}
}
}