168 lines
7.9 KiB
C#
168 lines
7.9 KiB
C#
using CG.Framework;
|
|
using CG.UTility;
|
|
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
/*******************************************************************************
|
|
*Create By CG
|
|
*Function 部件栏Ui 部件认知显示
|
|
*******************************************************************************/
|
|
namespace ZXK.GYJQR
|
|
{
|
|
public class OperationPartsBJCJPanel : UIBase
|
|
{
|
|
private GameObject _partItemContentOnePrefab = null;
|
|
private Transform _partParent = null;
|
|
|
|
private Transform _curSelectStepBtn = null;
|
|
|
|
private void OnEnable()
|
|
{
|
|
_partItemContentOnePrefab = GetWedage("ContentOnePrefab_N");
|
|
_partParent = GetWedage("PartItemContent_N").transform;
|
|
GameManager.Instance._DataBJCJHandler._CurBJRZhandler.OnValueChanged += OnPartInfoChanged;
|
|
//EventCenterManager.Instance.AddEventListener(EventEnum.CameraDoubleClickNull, DoubleClickNullHandler);
|
|
}
|
|
|
|
///// <summary>
|
|
///// 双击空白处再次显示原模型
|
|
///// </summary>
|
|
//private void DoubleClickNullHandler(object sender, EventArgs e)
|
|
//{
|
|
// string showName = GameManager.Instance._DataBJCJHandler._ShowPartsName.Value;
|
|
// BJCJ_INFO bjrzInfo = GameManager.Instance._DataBJCJHandler._CurBJRZhandler.GetValue()[showName];
|
|
// if (bjrzInfo == null) return;
|
|
// GameManager.Instance._DataBJCJHandler._CurBJRZhandler.SetValue(showName, bjrzInfo);
|
|
//}
|
|
|
|
private void OnDisable()
|
|
{
|
|
GameManager.Instance._DataBJCJHandler._CurBJRZhandler.OnValueChanged -= OnPartInfoChanged;
|
|
//EventCenterManager.Instance.RemoveListener(EventEnum.CameraDoubleClickNull, DoubleClickNullHandler);
|
|
}
|
|
/// <summary>
|
|
/// 实例化数据到部件栏
|
|
/// 切换功能状态和模型都会刷新
|
|
/// </summary>
|
|
/// <param name="info">设置不同数据集合</param>
|
|
public void InitData(List<BJCJ_INFO> ItemInfo)
|
|
{
|
|
foreach (Transform item in _partParent)
|
|
{
|
|
item.gameObject.SetActive(false);
|
|
}
|
|
GameObject itemContentTemp = null;
|
|
for (int i = 0; i < ItemInfo.Count; i++)
|
|
{
|
|
GameObject geo = null;
|
|
if (_partParent.Find("itemContent/"+ItemInfo[i].id.ToString()))
|
|
{
|
|
geo = _partParent.Find("itemContent/" + ItemInfo[i].id.ToString()).gameObject;
|
|
geo.transform.parent.gameObject.SetActive(true);
|
|
}
|
|
else
|
|
{
|
|
if (i % 3 == 0)
|
|
{
|
|
itemContentTemp = Instantiate(_partItemContentOnePrefab, _partParent);
|
|
itemContentTemp.name ="itemContent";
|
|
}
|
|
GameObject itemPrefab = itemContentTemp.transform.Find("PartItemPrefab").gameObject;
|
|
geo = Instantiate(itemPrefab, itemContentTemp.transform);
|
|
itemContentTemp.SetActive(true);
|
|
|
|
ButtonExtension2 geoBtnExt = geo.AddComponent<ButtonExtension2>();
|
|
|
|
geo.name = ItemInfo[i].id.ToString();
|
|
|
|
Sprite tmep = null;
|
|
//if (DataBJCJHandler._BJCZSpriteArray.ContainsKey(ItemInfo[i].partName))
|
|
//{
|
|
// tmep = DataBJCJHandler._BJCZSpriteArray[ItemInfo[i].partName];
|
|
//}
|
|
//else
|
|
//{
|
|
Sprite sprite = Resources.Load<Sprite>("BJCZLogo/"
|
|
+ GameManager.Instance._DataBJCJHandler._ShowPartsName.Value
|
|
+ "/"
|
|
+ ItemInfo[i].partName.Replace("/",""));
|
|
//UtilitiesMng.LoadSpriteByURL(ItemInfo[i].picURL, (sprite) =>
|
|
//{
|
|
//DataBJCJHandler._BJCZSpriteArray.Add(ItemInfo[i].partName, sprite);
|
|
geo.transform.Find("PartBG/PartImg").GetComponent<Image>().sprite = sprite;
|
|
//});
|
|
//}
|
|
if (System.Text.Encoding.Default.GetBytes(ItemInfo[i].partName).Length <= 15)
|
|
{
|
|
geo.GetComponent<RectTransform>().sizeDelta = new Vector2(72, 92);
|
|
geo.transform.Find("PartNameTxt").GetComponent<RectTransform>().sizeDelta = new Vector2(72, 20);
|
|
geo.transform.Find("PartNameTxt").GetComponent<Text>().alignment = TextAnchor.UpperCenter;
|
|
}
|
|
else
|
|
{
|
|
geo.GetComponent<RectTransform>().sizeDelta = new Vector2(72, 112);
|
|
geo.transform.Find("PartNameTxt").GetComponent<RectTransform>().sizeDelta = new Vector2(72, 40);
|
|
geo.transform.Find("PartNameTxt").GetComponent<Text>().alignment = TextAnchor.UpperLeft;
|
|
}
|
|
geo.transform.Find("PartNameTxt").GetComponent<Text>().text = ItemInfo[i].partName;
|
|
geoBtnExt.onClick.AddListener(() =>
|
|
{
|
|
string showName = GameManager.Instance._DataBJCJHandler._ShowPartsName.Value;
|
|
BJCJ_INFO curInfo = GameManager.Instance._DataBJCJHandler._CurBJRZhandler.GetValue()[showName];
|
|
if (GameManager.Instance._DataBJCJHandler._CurState.Value == (int)EnumCtrl.BJCZState.BJRZ)
|
|
{
|
|
BJCJ_INFO bjrzInfo = GameManager.Instance._DataBJCJHandler.GetBJRZInfoByID(geoBtnExt.name);
|
|
if (bjrzInfo == curInfo) return;
|
|
GameManager.Instance._DataBJCJHandler._CurBJRZhandler.SetValue(showName, bjrzInfo);
|
|
}
|
|
});
|
|
geoBtnExt.onDoubleClick.AddListener(() =>
|
|
{
|
|
WDebug.Log("双击" + geo.name);
|
|
string showName = GameManager.Instance._DataBJCJHandler._ShowPartsName.Value;
|
|
BJCJ_INFO bjrzInfo = GameManager.Instance._DataBJCJHandler._CurBJRZhandler.GetValue()[showName];
|
|
if (BJCZSceneCtrl._Instance._OnlyShowGeo)
|
|
{
|
|
if (bjrzInfo == null) return;
|
|
GameManager.Instance._DataBJCJHandler._CurBJRZhandler.SetValue(showName, bjrzInfo);
|
|
}
|
|
else
|
|
{
|
|
BJCZSceneCtrl._Instance.DoubleClick(showName, bjrzInfo.itemGeo);
|
|
}
|
|
});
|
|
}
|
|
geo.SetActive(true);
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// 选中零件发生变化
|
|
/// </summary>
|
|
/// <param name="obj"></param>
|
|
private void OnPartInfoChanged(Dictionary<string, BJCJ_INFO> obj)
|
|
{
|
|
foreach (var item in obj)
|
|
{
|
|
if (item.Key.Equals(GameManager.Instance._DataBJCJHandler._ShowPartsName.Value))
|
|
{
|
|
WDebug.Log($"当前主题:{item.Key},零件ID:{item.Value.id}");
|
|
if (GameManager.Instance._DataBJCJHandler._CurState.Value == (int)EnumCtrl.BJCZState.BJRZ)
|
|
{
|
|
if (_curSelectStepBtn)
|
|
{
|
|
_curSelectStepBtn.Find("FrameImg").gameObject.SetActive(false);
|
|
}
|
|
Transform btnTran = _partParent.Find("itemContent/"+item.Value.id.ToString());
|
|
if (btnTran)
|
|
{
|
|
btnTran.Find("FrameImg").gameObject.SetActive(true);
|
|
_curSelectStepBtn = btnTran;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |