暫無描述
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

Example90_Candlestick.cs 2.0KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. using UnityEngine;
  2. using XCharts.Runtime;
  3. #if INPUT_SYSTEM_ENABLED
  4. using Input = XCharts.Runtime.InputHelper;
  5. #endif
  6. namespace XCharts.Example
  7. {
  8. [DisallowMultipleComponent]
  9. [ExecuteInEditMode]
  10. public class Example90_Candlestick : MonoBehaviour
  11. {
  12. private CandlestickChart chart;
  13. private float updateTime;
  14. public int dataCount = 100;
  15. void Awake()
  16. {
  17. chart = gameObject.GetComponent<CandlestickChart>();
  18. if (chart == null)
  19. {
  20. chart = gameObject.AddComponent<CandlestickChart>();
  21. }
  22. AddData();
  23. }
  24. void Update()
  25. {
  26. if (Input.GetKeyDown(KeyCode.Space))
  27. {
  28. AddData();
  29. }
  30. }
  31. void AddData()
  32. {
  33. chart.ClearData();
  34. var xValue = System.DateTime.Now;
  35. var baseValue = Random.Range(0f, 1f) * 12000;
  36. var boxVals = new float[4];
  37. var dayRange = 12;
  38. for (int i = 0; i < dataCount; i++)
  39. {
  40. baseValue = baseValue + Random.Range(0f, 1f) * 30 - 10;
  41. for (int j = 0; j < 4; j++)
  42. {
  43. boxVals[j] = (Random.Range(0f, 1f) - 0.5f) * dayRange + baseValue;
  44. }
  45. System.Array.Sort(boxVals);
  46. var openIdx = Mathf.RoundToInt(Random.Range(0f, 1f) * 3);
  47. var closeIdx = Mathf.RoundToInt(Random.Range(0f, 1f) * 2);
  48. if (openIdx == closeIdx)
  49. {
  50. closeIdx++;
  51. }
  52. //var volumn = boxVals[3]*(1000+Random.Range(0f,1f) * 500);
  53. var open = boxVals[openIdx];
  54. var close = boxVals[closeIdx];
  55. var lowest = boxVals[0];
  56. var heighest = boxVals[3];
  57. chart.AddXAxisData(i.ToString());
  58. chart.AddData(0, i, open, close, lowest, heighest);
  59. }
  60. }
  61. }
  62. }