using System.Collections; using System.Collections.Generic; using System.Threading.Tasks; using DG.Tweening; using GameFramework; using GameFramework.Event; using UnityEngine; using UnityEngine.SceneManagement; using UnityEngine.Serialization; using UnityEngine.UI; using UnityGameFramework.Runtime; public class TrainStudyForm : UIFormLogic { private GameObject _trainPanel; private GameObject _learnPanel; private GameObject _faultPanel; private GameObject _trainDoneTips; private GameObject _faultDoneTips; private Button _reStartButton; private Button _cpuButton; private Button _ramButton; private Button _fanButton; private Button _powerButton; private bool cpuDone = false; private bool fanDone = false; private bool ramDone = false; private bool powerDone = false; //private GameObject _overHotTips; private Button _reStarFaultButton; private Button _cpuFaultButton; private Button _ramFaultButton; private Button _fanFaultButton; private Button _powerFaultButton; private Button _hardDiskFaultButton; private Button _batteryFaultButton; private Image _cpuValueSlider; private Text _cpuValueText; private Image _ramValueSlider; private Text _ramValueText; private Slider _hardDiskTemperature; private Image _hardDiskColor; private Slider _mbTemperature; private Image _mbColor; private Slider _fanSpeed; public Sprite[] learnModelButtonImg; public Sprite[] trainModelButtonImg; public Sprite[] bugModelButtonImg; private Button _learnButton; private Button _trainButton; private Button _faultButton; private IT_TrainModelType _currentType; private GameObject messagePanel; private Text nameText; private Text messageText; private const string cpuMessage = "CPU一般指中央处理器。 中央处理器(Central Processing Unit,简称CPU)作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。CPU自产生以来,在逻辑结构、运行效率以及功能外延上取得了巨大发展。"; private const string ramMessage = "随机存取存储器,也叫主存,是与CPU直接交换数据的内部存储器。它可以随时读写(刷新时除外),而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储介质。RAM工作时可以随时从任何一个指定的地址写入(存入)或读出(取出)信息。它与ROM的最大区别是数据的易失性,即一旦断电所存储的数据将随之丢失。"; private const string fanMessage = "用于机箱散热时:可沿机箱后面板排出热气流,使冷空气自前面板下部流入机箱。使机内形成持续对流的环境,降低机箱内环境温度,从而有效的达到辅助CPU、显卡等发热元件的散热。在用于电源散热时:除了带走电源内元件的热量,还可辅助排出机箱内热气流。"; private const string powerMessage = "计算机属于弱电产品,也就是说部件的工作电压比较低,一般在正负12伏以内,并且是直流电。而普通的市电为220伏(有些国家为110伏)交流电,不能直接在计算机部件上使用。因此计算机和很多家电一样需要一个电源部分,负责将普通市电转换为计算机可以使用的电压,一般安装在计算机内部."; private float randomUpdateTime = 0; private float cpuValue; private float ramValue; bool haveFixed = false; private GameObject tarinList; private Button trainB1; private Button trainB2; private Button trainB3; private Button trainB4; private Button trainB5; private GameObject faultList; private Button faultB1; private Button faultB2; private Button faultB3; private Button faultB4; private Button faultB5; //$$$ public Button[] faultButtons; public GameObject faultChoicePanel; public GameObject[] faultChoices; public GameObject[] powerFaultTips; public GameObject[] fanFaultTips; public GameObject[] ramFaultTips; public GameObject[] hardDiskFaultTips; public GameObject[] batteryFaultTips; private RectTransform faultTools; private GameObject faultSelectButtons; private IT_FaultToolList faultToolList; protected override void OnInit(object userData) { base.OnInit(userData); _trainPanel = this.transform.Find("trainPanel").gameObject; _learnPanel = this.transform.Find("learnPanel").gameObject; _faultPanel = this.transform.Find("faultPanel").gameObject; InItUiComponent(); InitFaultTips(); } protected override void OnOpen(object userData) { base.OnOpen(userData); _trainDoneTips.SetActive(false); _cpuButton.GetComponentInChildren().text = "CPU"; _fanButton.GetComponentInChildren().text = "风冷"; _powerButton.GetComponentInChildren().text = "电源"; _ramButton.GetComponentInChildren().text = "内存"; GameMain.Event.Subscribe(ReStart_IT_TrainStudyEvent.EventId, ReSetTrainUI); GameMain.Event.Subscribe(NextTrainStudyItemEvent.EventId, OnGetNextItem); GameMain.Event.Subscribe(IT_TrainStudyDoneEvent.EventId, OnIT_TrainStudyDone); GameMain.Event.Subscribe(IT_TrainStudyShowTargetInfoEvent.EventId, ChangeTargetMessage); GameMain.Event.Subscribe(IT_FaultNextEvent.EventId, OnGetIT_FaultNext); _learnPanel.SetActive(true); _trainPanel.SetActive(false); _learnButton.image.sprite = learnModelButtonImg[1]; _trainButton.image.sprite = trainModelButtonImg[0]; _faultButton.image.sprite = bugModelButtonImg[0]; ChangeToLearn(true, 0.1f); tarinList.SetActive(false); //_currentType = IT_TrainModelType.learn; //GameMain.Event.Fire(this,IT_StartLearnTargetInfoEvent.Create()); } protected override void OnUpdate(float elapseSeconds, float realElapseSeconds) { base.OnUpdate(elapseSeconds, realElapseSeconds); randomUpdateTime += elapseSeconds; if (randomUpdateTime >= 1) { if (haveFixed) { randomUpdateTime = 0; _cpuValueSlider.color = Color.green; _ramValueSlider.color = Color.green; cpuValue = Utility.Random.GetRandom(30, 40) * 0.01f; ramValue = Utility.Random.GetRandom(20, 30) * 0.01f; _cpuValueSlider.fillAmount = cpuValue; _cpuValueText.text = $"+{(int)(cpuValue * 100)}%"; _ramValueSlider.fillAmount = ramValue; _ramValueText.text = $"+{(int)(ramValue * 100)}%"; } else { randomUpdateTime = 0; _cpuValueSlider.color = Color.red; _ramValueSlider.color = new Color(1, 0.5f, 0); cpuValue = Utility.Random.GetRandom(86, 95) * 0.01f; ramValue = Utility.Random.GetRandom(63, 70) * 0.01f; _cpuValueSlider.fillAmount = cpuValue; _cpuValueText.text = $"+{(int)(cpuValue * 100)}%"; _ramValueSlider.fillAmount = ramValue; _ramValueText.text = $"+{(int)(ramValue * 100)}%"; } } } private void InItUiComponent() { _trainDoneTips = _trainPanel.transform.Find("DoneTips").gameObject; _trainDoneTips.SetActive(false); messagePanel = _learnPanel.transform.Find("messagePanel").gameObject; messagePanel.SetActive(false); nameText = messagePanel.transform.Find("nameText").GetComponent(); messageText = messagePanel.transform.Find("messageText").GetComponent(); _faultDoneTips = _faultPanel.transform.Find("DoneTips").gameObject; _faultDoneTips.SetActive(false); _faultPanel.SetActive(false); _reStartButton = _trainPanel.transform.Find("TrainButton/Verlist/reStartButton").GetComponent