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();
}
}