CQ_Intelligent-Technology-T.../Assets/Scripts/Control_Air.cs

281 lines
8.0 KiB
C#

using System.Collections;
using System.Collections.Generic;
using System.Linq;
using TMPro;
using Unity.VisualScripting.Antlr3.Runtime;
using UnityEngine;
using UnityEngine.UI;
/// <summary>
/// 空调控制
/// </summary>
public class Control_Air : MonoBehaviour
{
public static Control_Air Instance;
/// <summary>
/// 制冷按钮
/// </summary>
public Toggle Cool;
/// <summary>
/// 制热按钮
/// </summary>
public Toggle Warm;
/// <summary>
/// 温度+
/// </summary>
public Button TempAdd;
/// <summary>
/// 温度-
/// </summary>
public Button TempSub;
/// <summary>
/// 风速+
/// </summary>
public Button WindAdd;
/// <summary>
/// 风速-
/// </summary>
public Button WindSub;
/// <summary>
/// 打开空调
/// </summary>
public Button Open;
/// <summary>
/// 是否开启空调
/// </summary>
bool isOpen = false;
/// <summary>
/// 点击的空调
/// </summary>
public Transform airobject;
/// <summary>
/// 空调的温度
/// </summary>
public TextMeshProUGUI airnumber;
/// <summary>
/// 空调模式
/// </summary>
public Toggle airwarmModel;
/// <summary>
/// 空调模式
/// </summary>
public Toggle airwcoolModel;
/// <summary>
/// 所有风速图片
/// </summary>
public List<Sprite> flyspeeds = new List<Sprite>();
/// <summary>
/// UI风速图片
/// </summary>
public Image flyspeed;
int indextflyspeed;
private void Awake()
{
Instance = this;
}
void Start()
{
Open.onClick.AddListener(() =>
{
Cool.isOn = true;
isOpen = !isOpen;
OpenAir(isOpen);
});
//Cool.onValueChanged.AddListener((a) =>
//{
// OpenAir(true);
//});
//Warm.onValueChanged.AddListener((a) =>
//{
// SetWarm();
//});
TempAdd.onClick.AddListener(() =>
{
AddTemp();
});
TempSub.onClick.AddListener(() =>
{
SubTemp();
});
WindAdd.onClick.AddListener(() =>
{
AddWind();
});
WindSub.onClick.AddListener(() =>
{
SubWind();
});
}
private void Update()
{
if (SelectModel.Instance.region != Region.None && airobject == null)
{
switch (SelectModel.Instance.region)
{
case Region.:
airobject = Furniture_Manager.Instance.FindHome("环境", "空调");
break;
case Region.:
airobject = Furniture_Manager.Instance.FindHome("互联", "空调");
break;
case Region.:
airobject = Furniture_Manager.Instance.FindHome("家电", "空调");
break;
}
}
if (!isOpen)
{
SetButtonClick(isOpen);
}
else
{
SetButtonClick(isOpen);
}
}
public void AudiosTalk(string Talk)
{
if (Talk.Contains("开空调"))
{
isOpen = true;
OpenAir(isOpen);
}
if (Talk.Contains("关空调"))
{
isOpen = false;
OpenAir(isOpen);
}
else if (Talk.Contains("空调制冷"))
{
airwcoolModel.isOn = true;
OpenAir(true);
}
else if (Talk.Contains("空调制暖"))
{
airwarmModel.isOn = true;
SetWarm();
}
}
/// <summary>
/// 设置按钮是否可点
/// </summary>
void SetButtonClick(bool isclick)
{
Warm.interactable = isclick;
Cool.interactable = isclick;
TempAdd.interactable = isclick;
TempSub.interactable = isclick;
WindAdd.interactable = isclick;
WindSub.interactable = isclick;
}
/// <summary>
/// 打开空调 默认为制冷
/// </summary>
public void OpenAir(bool isopen)
{
if (airobject != null)
{
Canvas chirendcanvas = airobject.GetComponentInChildren<Canvas>();
if (isopen)
{
//Open.GetComponentInChildren<TextMeshProUGUI>().text = "关闭空调";
chirendcanvas.transform.localScale = new Vector3(0.1f, 0.1f, 0.1f);
List<TextMeshProUGUI> chirendmessage = chirendcanvas.GetComponentsInChildren<TextMeshProUGUI>().ToList();
airobject.GetChild(0).GetComponentInChildren<MeshRenderer>().material.EnableKeyword("_EMISSION");
chirendmessage[0].text = "16";//温度
//chirendmessage[2].text = ">";//风速
chirendmessage[2].text = "制冷";//温度
airnumber.text = "16";
}
else
{
//Open.GetComponentInChildren<TextMeshProUGUI>().text = "打开空调";
chirendcanvas.transform.localScale = new Vector3(0, 0, 0);
airobject.GetChild(0).GetComponentInChildren<MeshRenderer>().material.DisableKeyword("_EMISSION");
}
}
}
/// <summary>
/// 设置制暖
/// </summary>
public void SetWarm()
{
if (airobject != null)
{
Canvas chirendcanvas = airobject.GetComponentInChildren<Canvas>();
List<TextMeshProUGUI> chirendmessage = chirendcanvas.GetComponentsInChildren<TextMeshProUGUI>().ToList();
airobject.GetChild(0).GetComponentInChildren<MeshRenderer>().material.EnableKeyword("_EMISSION");
chirendmessage[0].text = "26";
airnumber.text = "26";
//chirendmessage[2].text = ">";//风速
chirendmessage[2].text = "制热";//模式
}
}
/// <summary>
/// 温度+
/// </summary>
private void AddTemp()
{
Canvas chirendcanvas = airobject.GetComponentInChildren<Canvas>();
List<TextMeshProUGUI> chirendmessage = chirendcanvas.GetComponentsInChildren<TextMeshProUGUI>().ToList();
if (int.Parse(chirendmessage[0].text) < 32)
{
chirendmessage[0].text = (int.Parse(chirendmessage[0].text) + 1).ToString();
}
airnumber.text = chirendmessage[0].text;
}
/// <summary>
/// 温度-
/// </summary>
private void SubTemp()
{
Canvas chirendcanvas = airobject.GetComponentInChildren<Canvas>();
List<TextMeshProUGUI> chirendmessage = chirendcanvas.GetComponentsInChildren<TextMeshProUGUI>().ToList();
if (int.Parse(chirendmessage[0].text) > 16)
{
chirendmessage[0].text = (int.Parse(chirendmessage[0].text) - 1).ToString();
}
airnumber.text = chirendmessage[0].text;
}
/// <summary>
/// 风速+
/// </summary>
private void AddWind()
{
Canvas chirendcanvas = airobject.GetComponentInChildren<Canvas>();
Image chirendmessage = chirendcanvas.GetComponentInChildren<Image>();
if (indextflyspeed < 2)
{
indextflyspeed++;
flyspeed.sprite = flyspeeds[indextflyspeed];
chirendmessage.sprite = flyspeeds[indextflyspeed];
}
//List<TextMeshProUGUI> chirendmessage = chirendcanvas.GetComponentsInChildren<TextMeshProUGUI>().ToList();
//if (chirendmessage[2].text.Length < 3)
//{
// chirendmessage[2].text += ">";
//}
}
/// <summary>
/// 风速-
/// </summary>
private void SubWind()
{
Canvas chirendcanvas = airobject.GetComponentInChildren<Canvas>();
Image chirendmessage = chirendcanvas.GetComponentInChildren<Image>();
//if (chirendmessage[2].text.Length > 1)
//{
// chirendmessage[2].text = chirendmessage[2].text.Substring(0, chirendmessage[2].text.Length - 1);
//}
if (indextflyspeed > 0)
{
indextflyspeed--;
flyspeed.sprite = flyspeeds[indextflyspeed];
chirendmessage.sprite = flyspeeds[indextflyspeed];
}
}
}