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