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);
}
}
}