87 lines
3.9 KiB
C#
87 lines
3.9 KiB
C#
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;
|
|
|
|
/// <summary>
|
|
/// 初始化第一工序
|
|
/// </summary>
|
|
/// <param name="firstProcessName">一级工序</param>
|
|
/// <param name="secondRightName">正确二级工序</param>
|
|
/// <param name="secondActualProcess">二级工序内相关操作</param>
|
|
/// <param name="processScore">流程得分</param>
|
|
/// <param name="totalScore">总计得分</param>
|
|
public void InitialFirstItem(string firstProcessName, string[] secondRightName, Dictionary<string, DataExamModel> 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<SecondProcessItemCtrl>();
|
|
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<SecondProcessItemCtrl>();
|
|
//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<SecondProcessItemCtrl>();
|
|
firstProcessCtrl.InitialSecondItem(secondRightName[i], null, null, null, ref toolScore);
|
|
}
|
|
}
|
|
}
|
|
|
|
_processScoreTxt.text = processScore.ToString();
|
|
_totalScoreTxt.text = totalScore.ToString();
|
|
}
|
|
|
|
private void Update()
|
|
{
|
|
float hight = _secondProcessContain.GetComponent<RectTransform>().sizeDelta.y;
|
|
transform.GetComponent<RectTransform>().sizeDelta = new Vector2(transform.GetComponent<RectTransform>().sizeDelta.x, hight);
|
|
}
|
|
}
|
|
} |