using System; using System.Collections; using System.Collections.Generic; using Sirenix.OdinInspector; using TMPro; using UnityEngine; public class DetectionPanel : MonoBehaviour { /// /// 露点数据 /// [SerializeField] private TMP_Text m_DewPointData; [LabelText("露点波动范围")] [SerializeField] private Vector2 m_DewPointRadius; /// /// 湿度数据 /// [SerializeField] private TMP_Text m_HumidnessData; [LabelText("湿度波动范围")] [SerializeField] private Vector2 m_HumidnessRadius; /// /// 温度数据 /// [SerializeField] private TMP_Text m_TemperatureData; [LabelText("温度波动范围")] [SerializeField] private Vector2 m_TemperatureRadius; /// /// P20数据 /// [SerializeField] private TMP_Text m_P20Data; [LabelText("温度波动范围")] [SerializeField] private Vector2 m_P20Radius; /// /// 水分流量数据 /// [SerializeField] private TMP_Text m_HydrationData; [LabelText("水分流量波动范围")] [SerializeField] private Vector2 m_HydrationRadius; public Action m_RandomAction; // Start is called before the first frame update void Start() { m_DewPointData.text = SetIntiData(int.Parse(m_DewPointRadius.x.ToString()), int.Parse(m_DewPointRadius.y.ToString()), true); m_HumidnessData.text = SetIntiData(int.Parse(m_HumidnessRadius.x.ToString()), int.Parse(m_HumidnessRadius.y.ToString()), true); m_TemperatureData.text = SetIntiData(int.Parse(m_TemperatureRadius.x.ToString()), int.Parse(m_TemperatureRadius.y.ToString()), true); m_HydrationData.text = SetIntiData(int.Parse(m_HydrationRadius.x.ToString()), int.Parse(m_HydrationRadius.y.ToString()), true); m_RandomAction?.Invoke(m_DewPointData.text, m_HumidnessData.text,m_TemperatureData.text); } /// /// 设置初始数据 /// private string SetIntiData(int _min,int _max,bool _allowDecimals) { System.Random random = new System.Random(); double randomValue; if (_allowDecimals) { // 生成范围在 minValue 到 maxValue 之间的随机浮点数(带一位小数) randomValue = Math.Round(random.NextDouble() * (_max - _min) + _min, 1); } else { // 生成范围在 minValue 到 maxValue 之间的随机整数 randomValue = random.Next(_min, _max + 1); } return randomValue.ToString(); } }