using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; /******************************************************************************* *Create By CG *Function 考试成绩面板控制-每个一级工序相关内容 *******************************************************************************/ namespace ZXK.ZPS { public class FirstProcessItemCtrl : MonoBehaviour { [SerializeField]//第一工序 private Text _firstProcessTxt = null; [SerializeField]//二级工序容器 private Transform _secondProcessContain = null; [SerializeField]//二级工序预制体 private GameObject _secondProcessItemPrefab = null; [SerializeField]//流程得分 private Text _processScoreTxt = null; [SerializeField]//总计得分 private Text _totalScoreTxt = null; /// /// 初始化第一工序 /// /// 一级工序 /// 正确二级工序 /// 二级工序内相关操作 /// 流程得分 /// 总计得分 public void InitialFirstItem(string firstProcessName, string[] secondRightName, Dictionary secondActualProcess, ref int processScore, ref int totalScore) { _firstProcessTxt.text = firstProcessName; int toolScore = 0; if (secondActualProcess == null) {//此一级工序没有做 for (int i = 0; i < secondRightName.Length; i++) { toolScore = 0;//工具得分 GameObject firstProcess = Instantiate(_secondProcessItemPrefab, _secondProcessContain); SecondProcessItemCtrl firstProcessCtrl = firstProcess.GetComponent(); firstProcessCtrl.InitialSecondItem(secondRightName[i], null, null, null, ref toolScore); } } else { //进入流程二级工序 int index = 0; foreach (string item in secondActualProcess.Keys) { GameObject firstProcess = Instantiate(_secondProcessItemPrefab, _secondProcessContain); SecondProcessItemCtrl firstProcessCtrl = firstProcess.GetComponent(); //toolScore = 0;//工具得分 firstProcessCtrl.InitialSecondItem(secondRightName[index], item, secondActualProcess[item].RightTools, secondActualProcess[item].ErroTools, ref toolScore); //获取流程得分 if (item.Equals(secondRightName[index])) { processScore++; } index++; } totalScore = processScore + toolScore; //完全没进入流程的二级工序 if (secondRightName.Length > secondActualProcess.Count) { for (int i = secondActualProcess.Count; i < secondRightName.Length; i++) { GameObject firstProcess = Instantiate(_secondProcessItemPrefab, _secondProcessContain); SecondProcessItemCtrl firstProcessCtrl = firstProcess.GetComponent(); firstProcessCtrl.InitialSecondItem(secondRightName[i], null, null, null, ref toolScore); } } } _processScoreTxt.text = processScore.ToString(); _totalScoreTxt.text = totalScore.ToString(); } private void Update() { float hight = _secondProcessContain.GetComponent().sizeDelta.y; transform.GetComponent().sizeDelta = new Vector2(transform.GetComponent().sizeDelta.x, hight); } } }