143 lines
4.9 KiB
C#
143 lines
4.9 KiB
C#
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
public class UI_ToolAndMaterialPanel : BasePanel
|
|
{
|
|
private Dictionary<string, List<ItemInfo>> bagDatas;
|
|
public RectTransform _content;
|
|
/// <summary>
|
|
///prefab
|
|
/// </summary>
|
|
public UI_ToolOrMaterialsOrDeviceItem ui_TmdItem;
|
|
|
|
public List<Toggle> toggles = new List<Toggle>();
|
|
|
|
public override void ShowMe()
|
|
{
|
|
base.ShowMe();
|
|
for (int i = 0; i < toggles.Count; i++)
|
|
{
|
|
int index = i;
|
|
toggles[index].onValueChanged.AddListener(ison => { MyChangeToggle(toggles[index].name, ison); });
|
|
}
|
|
GameManager.EventMgr.EventTrigger<bool>(Enum_EventType.PlayerCanMove, false);
|
|
CreatItem(E_ToolOrDeviceOrMaterials.Tool); //默认打开显示工器具
|
|
if (GameManager.RunModelMgr.ModeType == E_ModeType.Study)
|
|
{
|
|
//GetControl<Button>("closeBtn").gameObject.SetActive(false);
|
|
GameManager.EventMgr.AddEventListener<string>(Enum_EventType.SwitchSubProcessStepTriggerID, SwitchSubProcessStepTriggerID);
|
|
Debug.Log("注册高亮 UI_ToolAndMaterialPanel");
|
|
//手动高亮
|
|
if (GameManager.RunModelMgr.ModeType == E_ModeType.Study)
|
|
GameManager.EventMgr.EventTrigger<string>(Enum_EventType.SwitchSubProcessStepTriggerID, GameManager.ProcessMgr.subProcessStepTriggerID);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private void SwitchSubProcessStepTriggerID(string arg0)
|
|
{
|
|
Debug.Log("高亮: "+ arg0);
|
|
string objname = "";
|
|
if (arg0 == "背包工具按钮")
|
|
objname = "toolTog";
|
|
else if (arg0 == "背包设备按钮")
|
|
objname = "deviceTog";
|
|
else if (arg0 == "背包材料按钮")
|
|
objname = "materialsTog";
|
|
else
|
|
return;
|
|
|
|
toggles.ForEach(t =>
|
|
{
|
|
if(t.name== objname)
|
|
{
|
|
GameManager.UIMgr.imageTips.ShowTips(t.transform.GetComponent<RectTransform>());
|
|
t.interactable = true;
|
|
Debug.Log("按钮高亮:" + objname);
|
|
}
|
|
else
|
|
{
|
|
//GameManager.UIMgr.imageTips.HideTips();
|
|
t.interactable = false;
|
|
}
|
|
});
|
|
}
|
|
|
|
public override void HideMe()
|
|
{
|
|
base.HideMe();
|
|
GameManager.EventMgr.EventTrigger<bool>(Enum_EventType.PlayerCanMove, true);
|
|
if (GameManager.RunModelMgr.ModeType == E_ModeType.Study)
|
|
GameManager.EventMgr.RemoveEventListener<string>(Enum_EventType.SwitchSubProcessStepTriggerID, SwitchSubProcessStepTriggerID);
|
|
}
|
|
|
|
private void CreatItem(E_ToolOrDeviceOrMaterials tmdTpye)
|
|
{
|
|
if (_content.transform.childCount > 0)
|
|
{
|
|
for (int i = 0; i < _content.transform.childCount; i++)
|
|
{
|
|
Destroy(_content.transform.GetChild(i).gameObject);
|
|
}
|
|
}
|
|
bagDatas = GameManager.PacksackBagMgr.GetItemsByE_TMDType(tmdTpye);
|
|
var wearInfo = PacksackBagMgr.Instance.wearDic;
|
|
foreach (var item in bagDatas.Keys)
|
|
{
|
|
if (!wearInfo.ContainsKey(item))
|
|
{
|
|
UI_ToolOrMaterialsOrDeviceItem uiTMDitem = Instantiate(ui_TmdItem, _content);
|
|
uiTMDitem.Init(bagDatas[item]);
|
|
}
|
|
}
|
|
if (GameManager.RunModelMgr.ModeType == E_ModeType.Study)
|
|
GameManager.EventMgr.EventTrigger<string>(Enum_EventType.SwitchSubProcessStepTriggerID, GameManager.ProcessMgr.subProcessStepTriggerID);
|
|
}
|
|
|
|
public void MyChangeToggle(string toogleName, bool isOn)
|
|
{
|
|
if (isOn)
|
|
{
|
|
string triggername = "";
|
|
if (toogleName == "toolTog")
|
|
triggername = "背包工具按钮";
|
|
else if (toogleName == "deviceTog")
|
|
triggername = "背包设备按钮";
|
|
else if (toogleName == "materialsTog")
|
|
triggername = "背包材料按钮";
|
|
else
|
|
return;
|
|
|
|
if (GameManager.ProcessMgr == null || GameManager.ProcessMgr.IsRightSubProcessStepsTriggerID(triggername, true) == 0)
|
|
{
|
|
switch (toogleName)
|
|
{
|
|
case "toolTog":
|
|
CreatItem(E_ToolOrDeviceOrMaterials.Tool);
|
|
break;
|
|
case "deviceTog":
|
|
CreatItem(E_ToolOrDeviceOrMaterials.Device);
|
|
break;
|
|
case "materialsTog":
|
|
CreatItem(E_ToolOrDeviceOrMaterials.Materials);
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
protected override void OnClick(string btnName)
|
|
{
|
|
switch (btnName)
|
|
{
|
|
case "closeBtn":
|
|
GameManager.UIMgr.HidePanel<UI_ToolAndMaterialPanel>();
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
} |