281 lines
8.0 KiB
C#
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];
|
|
}
|
|
}
|
|
}
|