2021-03-10 13:03:36 +08:00
|
|
|
using UnityEngine;
|
2022-02-19 22:37:57 +08:00
|
|
|
using XCharts.Runtime;
|
2023-01-30 10:41:41 +08:00
|
|
|
#if INPUT_SYSTEM_ENABLED
|
|
|
|
|
using Input = XCharts.Runtime.InputHelper;
|
|
|
|
|
#endif
|
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;
|
2021-03-14 05:23:08 +08:00
|
|
|
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>();
|
|
|
|
|
}
|
2023-01-30 10:41:41 +08:00
|
|
|
AddData();
|
2021-03-10 13:03:36 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void Update()
|
|
|
|
|
{
|
|
|
|
|
if (Input.GetKeyDown(KeyCode.Space))
|
|
|
|
|
{
|
|
|
|
|
AddData();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2023-01-30 10:41:41 +08:00
|
|
|
void AddData()
|
2021-03-10 13:03:36 +08:00
|
|
|
{
|
|
|
|
|
chart.ClearData();
|
|
|
|
|
|
|
|
|
|
var xValue = System.DateTime.Now;
|
|
|
|
|
var baseValue = Random.Range(0f, 1f) * 12000;
|
|
|
|
|
var boxVals = new float[4];
|
|
|
|
|
var dayRange = 12;
|
|
|
|
|
|
2023-01-30 10:41:41 +08:00
|
|
|
for (int i = 0; i < dataCount; i++)
|
2021-03-10 13:03:36 +08:00
|
|
|
{
|
2022-05-22 22:17:38 +08:00
|
|
|
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;
|
2021-03-10 13:03:36 +08:00
|
|
|
}
|
|
|
|
|
System.Array.Sort(boxVals);
|
2022-05-22 22:17:38 +08:00
|
|
|
var openIdx = Mathf.RoundToInt(Random.Range(0f, 1f) * 3);
|
|
|
|
|
var closeIdx = Mathf.RoundToInt(Random.Range(0f, 1f) * 2);
|
|
|
|
|
if (openIdx == closeIdx)
|
|
|
|
|
{
|
|
|
|
|
closeIdx++;
|
2021-03-10 13:03:36 +08:00
|
|
|
}
|
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());
|
2022-08-26 23:17:54 +08:00
|
|
|
chart.AddData(0, i, open, close, lowest, heighest);
|
2021-03-10 13:03:36 +08:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|