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, notifyBtn; 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; [Header("멩列데객큐")] public string notifyName; /// <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"); notifyBtn = GetControl<Button>("NotifyBtn"); } 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>()); } else if (triggerID == disassemblyAssemblyWorkOrderName) { GameManager.UIMgr.imageTips.ShowTips(disassemblyAssemblyWorkOrderBtn.GetComponent<RectTransform>()); } else if (triggerID == toolKitName) { GameManager.UIMgr.imageTips.ShowTips(toolKitBtn.GetComponent<RectTransform>()); } else if (triggerID == siteName) { GameManager.UIMgr.imageTips.ShowTips(siteBtn.GetComponent<RectTransform>()); } else if (triggerID == officeName) { GameManager.UIMgr.imageTips.ShowTips(officeBtn.GetComponent<RectTransform>()); } else if (triggerID == toolRoomName) { GameManager.UIMgr.imageTips.ShowTips(toolRoomBtn.GetComponent<RectTransform>()); } else if (triggerID == notifyName) { GameManager.UIMgr.imageTips.ShowTips(notifyBtn.GetComponent<RectTransform>()); } 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); 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); notifyBtn.gameObject.SetActive(type == E_SceneType.Site); } /// <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; case "NotifyBtn": if (GameManager.ProcessMgr.IsRightSubProcessStepsTriggerID(notifyName, false) == 0) { GameManager.UIMgr.ShowPanel<UI_DisassemblyAssemblyNoticePanel>(E_UI_Layer.Mid, (p) => { p.Init(notifyName); }); } break; default: break; } } }