235 lines
9.7 KiB
C#
235 lines
9.7 KiB
C#
|
|
using UnityEngine;
|
|
using DG.Tweening;
|
|
using UnityEngine.UI;
|
|
using UnityEngine.SceneManagement;
|
|
using TMPro;
|
|
using UnityEngine.EventSystems;
|
|
using System.Collections;
|
|
using System;
|
|
|
|
public class UI_MenuBar : BasePanel
|
|
{
|
|
[SerializeField]
|
|
private Sprite ExpandSprite, CollapseSprite;
|
|
private Button closeDefaultBtn, toolRoomBtn, siteBtn, workOrderBtn, missionBtn, officeBtn, disassemblyAssemblyWorkOrderBtn, toolKitBtn;
|
|
public int countDown = 0;
|
|
|
|
private int time;
|
|
|
|
[Header("工作票按钮")]
|
|
public string workOrderName;
|
|
[Header("拆装工单按钮")]
|
|
public string disassemblyAssemblyWorkOrderName;
|
|
[Header("背包按钮")]
|
|
public string toolKitName;
|
|
[Header("现场按钮")]
|
|
public string siteName;
|
|
[Header("办公室按钮")]
|
|
public string officeName;
|
|
[Header("工具间按钮")]
|
|
public string toolRoomName;
|
|
/// <summary>
|
|
/// 记录倒计时的协程
|
|
/// </summary>
|
|
private Coroutine coroutine;
|
|
public void Init()
|
|
{
|
|
//coroutine = GameManager.MonoMgr.StartCoroutine(CountDown(countDown));
|
|
//MenuBarIamge = GetControl<Image>("MenuBar");
|
|
closeDefaultBtn = GetControl<Button>("CloseDefaultBtn");
|
|
toolRoomBtn = GetControl<Button>("ToolRoomBtn");
|
|
siteBtn = GetControl<Button>("SiteBtn");
|
|
workOrderBtn = GetControl<Button>("WorkOrderBtn");
|
|
missionBtn = GetControl<Button>("MissionBtn");
|
|
officeBtn = GetControl<Button>("OfficeBtn");
|
|
toolKitBtn = GetControl<Button>("ToolKitBtn");
|
|
disassemblyAssemblyWorkOrderBtn = GetControl<Button>("DisassemblyAssemblyWorkOrderBtn");
|
|
}
|
|
public override void ShowMe()
|
|
{
|
|
GameManager.EventMgr.AddEventListener<E_SceneType>(Enum_EventType.SwitchScene, CheckBtnBySceneName);
|
|
GameManager.EventMgr.AddEventListener<string>(Enum_EventType.SwitchSubProcessStepTriggerID, SwitchSubProcessStepTriggerID);
|
|
}
|
|
|
|
private void SwitchSubProcessStepTriggerID(string triggerID)
|
|
{
|
|
if (triggerID == workOrderName)
|
|
{
|
|
GameManager.UIMgr.imageTips.ShowTips(workOrderBtn.GetComponent<RectTransform>());
|
|
Debug.Log("工作单提示");
|
|
}
|
|
else if (triggerID == disassemblyAssemblyWorkOrderName)
|
|
{
|
|
GameManager.UIMgr.imageTips.ShowTips(disassemblyAssemblyWorkOrderBtn.GetComponent<RectTransform>());
|
|
Debug.Log("拆装工单提示");
|
|
}
|
|
else if (triggerID == toolKitName)
|
|
{
|
|
GameManager.UIMgr.imageTips.ShowTips(toolKitBtn.GetComponent<RectTransform>());
|
|
Debug.Log("背包按钮提示");
|
|
}
|
|
else if (triggerID == siteName)
|
|
{
|
|
GameManager.UIMgr.imageTips.ShowTips(siteBtn.GetComponent<RectTransform>());
|
|
Debug.Log("现场按钮提示");
|
|
}
|
|
else if (triggerID == officeName)
|
|
{
|
|
GameManager.UIMgr.imageTips.ShowTips(officeBtn.GetComponent<RectTransform>());
|
|
Debug.Log("办公室按钮提示");
|
|
}
|
|
else if (triggerID == toolRoomName)
|
|
{
|
|
GameManager.UIMgr.imageTips.ShowTips(toolRoomBtn.GetComponent<RectTransform>());
|
|
Debug.Log("工具间按钮提示");
|
|
}
|
|
else
|
|
{
|
|
GameManager.UIMgr.imageTips.HideTips();
|
|
}
|
|
}
|
|
|
|
public override void HideMe()
|
|
{
|
|
GameManager.EventMgr.RemoveEventListener<E_SceneType>(Enum_EventType.SwitchScene, CheckBtnBySceneName);
|
|
GameManager.EventMgr.RemoveEventListener<string>(Enum_EventType.SwitchSubProcessStepTriggerID, SwitchSubProcessStepTriggerID);
|
|
}
|
|
public void CheckBtnBySceneName(E_SceneType type)
|
|
{
|
|
Debug.Log(type.ToString());
|
|
if (GetControl<Image>("MenuBar").transform.localPosition.x == 960)
|
|
{
|
|
GetControl<Image>("CloseDefaultBtn").sprite = ExpandSprite;
|
|
GetControl<Image>("MenuBar").transform.DOLocalMoveX(1070, 0.5f);
|
|
}
|
|
toolRoomBtn.gameObject.SetActive(type != E_SceneType.ToolRoom);
|
|
siteBtn.gameObject.SetActive(type == E_SceneType.ToolRoom);
|
|
workOrderBtn.gameObject.SetActive(type == E_SceneType.Office || type == E_SceneType.Site);
|
|
missionBtn.gameObject.SetActive(type == E_SceneType.Office || type == E_SceneType.ToolRoom || type == E_SceneType.Site);
|
|
officeBtn.gameObject.SetActive(type == E_SceneType.ToolRoom);
|
|
disassemblyAssemblyWorkOrderBtn.gameObject.SetActive(type == E_SceneType.Office);
|
|
toolKitBtn.gameObject.SetActive(type != E_SceneType.Office);
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 倒计时
|
|
/// </summary>
|
|
/// <param name="time">倒计时多久</param>
|
|
/// <returns></returns>
|
|
private IEnumerator CountDown(int time)
|
|
{
|
|
this.time = time;
|
|
countDown = time;
|
|
WaitForSeconds waitForSeconds = new WaitForSeconds(1);
|
|
while (countDown > 0)
|
|
{
|
|
yield return waitForSeconds;
|
|
GetControl<Image>("MenuBar").transform.DOLocalMoveX(1070, 0.5f);
|
|
}
|
|
}
|
|
protected override void OnClick(string btnName)
|
|
{
|
|
switch (btnName)
|
|
{
|
|
case "CloseDefaultBtn":
|
|
GetControl<Image>("MenuBar").transform.DOLocalMoveX(960, 0.5f);
|
|
GetControl<Image>("CloseDefaultBtn").sprite = CollapseSprite;
|
|
if (GetControl<Image>("MenuBar").transform.localPosition.x == 960)
|
|
{
|
|
GetControl<Image>("CloseDefaultBtn").sprite = ExpandSprite;
|
|
GetControl<Image>("MenuBar").transform.DOLocalMoveX(1070, 0.5f);
|
|
}
|
|
break;
|
|
case "OfficeBtn":
|
|
if (GameManager.ProcessMgr.IsRightSubProcessStepsTriggerID(officeName, true) == 0)
|
|
{
|
|
GameManager.UIMgr.ShowPanel<UI_LoadingPanel>(E_UI_Layer.System, (panel) =>
|
|
{
|
|
panel.Init();
|
|
GameManager.EventMgr.EventTrigger<float>(Enum_EventType.UpdateProgress, 0.1f);
|
|
GameManager.ScenesMgr.LoadSceneAsyn("03_OfficeScene", () =>
|
|
{
|
|
GameManager.EventMgr.EventTrigger<float>(Enum_EventType.UpdateProgress, 0.9f);
|
|
GameManager.EventMgr.EventTrigger(Enum_EventType.SwitchScene, GameManager.RunModelMgr.SceneType);
|
|
|
|
GameManager.EventMgr.EventTrigger<string>(Enum_EventType.SwitchSubProcessStepTriggerID, ProcessManager.Instance.subProcessStepTriggerID);
|
|
|
|
});
|
|
});
|
|
}
|
|
break;
|
|
case "ToolRoomBtn":
|
|
if (GameManager.ProcessMgr.IsRightSubProcessStepsTriggerID(toolRoomName, true) == 0)
|
|
{
|
|
GameManager.UIMgr.ShowPanel<UI_LoadingPanel>(E_UI_Layer.System, (panel) =>
|
|
{
|
|
panel.Init();
|
|
GameManager.EventMgr.EventTrigger<float>(Enum_EventType.UpdateProgress, 0.1f);
|
|
GameManager.ScenesMgr.LoadSceneAsyn("04_ToolMaterialScene", () =>
|
|
{
|
|
GameManager.EventMgr.EventTrigger<float>(Enum_EventType.UpdateProgress, 0.9f);
|
|
GameManager.EventMgr.EventTrigger(Enum_EventType.SwitchScene, GameManager.RunModelMgr.SceneType);
|
|
|
|
GameManager.EventMgr.EventTrigger<string>(Enum_EventType.SwitchSubProcessStepTriggerID, ProcessManager.Instance.subProcessStepTriggerID);
|
|
});
|
|
});
|
|
}
|
|
break;
|
|
case "SiteBtn":
|
|
if (GameManager.ProcessMgr.IsRightSubProcessStepsTriggerID(siteName, true) == 0)
|
|
{
|
|
GameManager.UIMgr.ShowPanel<UI_LoadingPanel>(E_UI_Layer.System, (panel) =>
|
|
{
|
|
panel.Init();
|
|
GameManager.EventMgr.EventTrigger<float>(Enum_EventType.UpdateProgress, 0.1f);
|
|
//判分
|
|
ScoreManager.instance.Check(siteName, null);
|
|
GameManager.ScenesMgr.LoadSceneAsyn("05_LiveScene", () =>
|
|
{
|
|
GameManager.EventMgr.EventTrigger<float>(Enum_EventType.UpdateProgress, 0.9f);
|
|
GameManager.EventMgr.EventTrigger(Enum_EventType.SwitchScene, GameManager.RunModelMgr.SceneType);
|
|
|
|
GameManager.EventMgr.EventTrigger<string>(Enum_EventType.SwitchSubProcessStepTriggerID, ProcessManager.Instance.subProcessStepTriggerID);
|
|
});
|
|
});
|
|
}
|
|
break;
|
|
case "WorkOrderBtn":
|
|
if (GameManager.ProcessMgr.IsRightSubProcessStepsTriggerID(workOrderName, false) == 0)
|
|
{
|
|
GameManager.UIMgr.ShowPanel<UI_SelectWorkTicketPanel>(E_UI_Layer.Mid, (panel) =>
|
|
{
|
|
panel.Init(workOrderName);
|
|
});
|
|
}
|
|
break;
|
|
case "WorkTicketBtn":
|
|
|
|
break;
|
|
case "DisassemblyAssemblyWorkOrderBtn":
|
|
if (GameManager.ProcessMgr.IsRightSubProcessStepsTriggerID(disassemblyAssemblyWorkOrderName, false) == 0)
|
|
{
|
|
GameManager.UIMgr.ShowPanel<UI_InstallAndDismantleTicketPanel>(E_UI_Layer.Mid, (panel) =>
|
|
{
|
|
panel.Init(disassemblyAssemblyWorkOrderName);
|
|
});
|
|
}
|
|
break;
|
|
case "ToolKitBtn":
|
|
if (GameManager.ProcessMgr.IsRightSubProcessStepsTriggerID(toolKitName, true) == 0)
|
|
{
|
|
GameManager.UIMgr.ShowPanel<UI_ToolAndMaterialPanel>(E_UI_Layer.Mid, (p) =>
|
|
{
|
|
|
|
});
|
|
}
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
|
|
}
|
|
}
|