loudixvmuniu/Assets/_Scripts/Application/UI/SelectToolsPanel.cs
“CongG” e3a815c7d0 考核模式工具显示相关功能整理优化
摄像机出现弹窗后停止位移
2025-01-04 19:56:41 +08:00

90 lines
4.1 KiB
C#

using CG.Framework;
using CG.UTility;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
/*******************************************************************************
*Create By CG
*Function
*******************************************************************************/
namespace ZXK.LouDiXvMuNiu
{
public class SelectToolsPanel : UIBase
{
private Transform _toolsContent = null;
private GameObject _toolItemPrefab = null;
private List<GameObject> _toolBtnArray = new List<GameObject>();
protected override void Awake()
{
base.Awake();
_toolsContent = GetWedage("ToolsItemContent_N").transform;
_toolItemPrefab = GetWedage("SelectToolsPanel_ToolsItem_N");
CreateTool();
}
private void OnEnable()
{
for (int i = 0; i < _toolBtnArray.Count; i++)
{
_toolBtnArray[i].transform.Find("BeUseImg/ChoseRight").gameObject.SetActive(false);
_toolBtnArray[i].transform.Find("BeUseImg/ChoseError").gameObject.SetActive(false);
}
}
private void CreateTool()
{
List<NiuData> tempData = GameManager.Instance._DataNiuHandler.NiuStepTypeDic[GameManager.Instance._CurModelType];
for (int i = 0; i < tempData.Count; i++)
{
string itemTools = tempData[i].ToolsName;
string itemErroTools= tempData[i].OptionErro;
if (string.IsNullOrEmpty(itemTools)) continue;
string[] rightTools = itemTools.Split("|");
string[] erroTools = itemErroTools.Split("|");
string[] allTools = new string[rightTools.Length + erroTools.Length];
rightTools.CopyTo(allTools, 0);
erroTools.CopyTo(allTools, rightTools.Length);
for (int j = 0; j < allTools.Length; j++)
{
GameObject toolItemGeo = Instantiate(_toolItemPrefab, _toolsContent);
toolItemGeo.name = allTools[j];
toolItemGeo.transform.Find("NoUseImg/Text").GetComponent<Text>().text = allTools[j];
Sprite sprite = Resources.Load<Sprite>("ToolsLogo/" + allTools[j]);
//UtilitiesMng.LoadSpriteByURL(ItemInfo[i].picURL, (sprite) =>
//{
//DataBJCJHandler._BJCZSpriteArray.Add(ItemInfo[i].partName, sprite);
toolItemGeo.transform.Find("ToolsConnet").GetComponent<Image>().sprite = sprite;
//});
toolItemGeo.GetComponent<Button>().onClick.AddListener(() =>
{
NiuData curStep = GameManager.Instance._DataNiuHandler.CurNiuHandler.Value;
if (!curStep.TaskType.Equals(ConstCtrl.TASKTYPE_ShowGeo)) return;
toolItemGeo.GetComponent<Button>().interactable = false;
string[] curTools = curStep.ToolsName.Split("|");
bool rightSelect = false;
for (int i = 0; i < curTools.Length; i++)
{
if (curTools[i].Equals(toolItemGeo.name)) rightSelect = true;
}
if (rightSelect)
{
toolItemGeo.transform.Find("BeUseImg/ChoseRight").gameObject.SetActive(true);
GameManager.Instance._EventManager.Raise(new ClickToolArgs() { SelectTool = toolItemGeo.name });
GameManager.Instance._DataNiuHandler.AddScore(curStep.ModuleName, curStep.ThreeTaskName, 1);
}
else
{
toolItemGeo.transform.Find("BeUseImg/ChoseError").gameObject.SetActive(true);
}
});
toolItemGeo.SetActive(true);
_toolBtnArray.Add(toolItemGeo);
}
}
}
}
}