DetectionPanel.cs 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using Sirenix.OdinInspector;
  5. using TMPro;
  6. using UnityEngine;
  7. public class DetectionPanel : MonoBehaviour
  8. {
  9. /// <summary>
  10. /// 露点数据
  11. /// </summary>
  12. [SerializeField]
  13. private TMP_Text m_DewPointData;
  14. [LabelText("露点波动范围")]
  15. [SerializeField]
  16. private Vector2 m_DewPointRadius;
  17. /// <summary>
  18. /// 湿度数据
  19. /// </summary>
  20. [SerializeField]
  21. private TMP_Text m_HumidnessData;
  22. [LabelText("湿度波动范围")]
  23. [SerializeField]
  24. private Vector2 m_HumidnessRadius;
  25. /// <summary>
  26. /// 温度数据
  27. /// </summary>
  28. [SerializeField]
  29. private TMP_Text m_TemperatureData;
  30. [LabelText("温度波动范围")]
  31. [SerializeField]
  32. private Vector2 m_TemperatureRadius;
  33. /// <summary>
  34. /// P20数据
  35. /// </summary>
  36. [SerializeField]
  37. private TMP_Text m_P20Data;
  38. [LabelText("温度波动范围")]
  39. [SerializeField]
  40. private Vector2 m_P20Radius;
  41. /// <summary>
  42. /// 水分流量数据
  43. /// </summary>
  44. [SerializeField]
  45. private TMP_Text m_HydrationData;
  46. [LabelText("水分流量波动范围")]
  47. [SerializeField]
  48. private Vector2 m_HydrationRadius;
  49. public Action<string, string,string> m_RandomAction;
  50. // Start is called before the first frame update
  51. void Start()
  52. {
  53. m_DewPointData.text = SetIntiData(int.Parse(m_DewPointRadius.x.ToString()), int.Parse(m_DewPointRadius.y.ToString()), true);
  54. m_HumidnessData.text = SetIntiData(int.Parse(m_HumidnessRadius.x.ToString()), int.Parse(m_HumidnessRadius.y.ToString()), true);
  55. m_TemperatureData.text = SetIntiData(int.Parse(m_TemperatureRadius.x.ToString()), int.Parse(m_TemperatureRadius.y.ToString()), true);
  56. m_HydrationData.text = SetIntiData(int.Parse(m_HydrationRadius.x.ToString()), int.Parse(m_HydrationRadius.y.ToString()), true);
  57. m_RandomAction?.Invoke(m_DewPointData.text, m_HumidnessData.text,m_TemperatureData.text);
  58. }
  59. /// <summary>
  60. /// 设置初始数据
  61. /// </summary>
  62. private string SetIntiData(int _min,int _max,bool _allowDecimals)
  63. {
  64. System.Random random = new System.Random();
  65. double randomValue;
  66. if (_allowDecimals)
  67. {
  68. // 生成范围在 minValue 到 maxValue 之间的随机浮点数(带一位小数)
  69. randomValue = Math.Round(random.NextDouble() * (_max - _min) + _min, 1);
  70. }
  71. else
  72. {
  73. // 生成范围在 minValue 到 maxValue 之间的随机整数
  74. randomValue = random.Next(_min, _max + 1);
  75. }
  76. return randomValue.ToString();
  77. }
  78. }