YanCheng_Metrology/Assets/Scripts/Project/UI/UI_Panel/UI_MenuBar.cs

271 lines
10 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, 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)
{
bool isOpen = false;
if (triggerID == workOrderName)
{
GameManager.UIMgr.imageTips.ShowTips(workOrderBtn.GetComponent<RectTransform>());
isOpen = true;
}
else if (triggerID == disassemblyAssemblyWorkOrderName)
{
GameManager.UIMgr.imageTips.ShowTips(disassemblyAssemblyWorkOrderBtn.GetComponent<RectTransform>());
isOpen = true;
}
else if (triggerID == toolKitName)
{
GameManager.UIMgr.imageTips.ShowTips(toolKitBtn.GetComponent<RectTransform>());
isOpen = true;
}
else if (triggerID == siteName)
{
GameManager.UIMgr.imageTips.ShowTips(siteBtn.GetComponent<RectTransform>());
isOpen = true;
}
else if (triggerID == officeName)
{
GameManager.UIMgr.imageTips.ShowTips(officeBtn.GetComponent<RectTransform>());
isOpen = true;
}
else if (triggerID == toolRoomName)
{
GameManager.UIMgr.imageTips.ShowTips(toolRoomBtn.GetComponent<RectTransform>());
isOpen = true;
}
else if (triggerID == notifyName)
{
GameManager.UIMgr.imageTips.ShowTips(notifyBtn.GetComponent<RectTransform>());
isOpen = true;
}
else
{
GameManager.UIMgr.imageTips.HideTips();
isOpen = false;
}
if (isOpen)
{
OpenMenu();
}
else
{
CloseMenu();
}
}
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());
CloseMenu();
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;
CloseMenu();
}
}
private void OpenMenu()
{
GetControl<Image>("CloseDefaultBtn").sprite = ExpandSprite;
GetControl<Image>("MenuBar").rectTransform.DOAnchorPosX(0, 0.2f);
}
private void CloseMenu()
{
GetControl<Image>("MenuBar").rectTransform.DOAnchorPosX(110, 0.2f);
GetControl<Image>("CloseDefaultBtn").sprite = CollapseSprite;
}
protected override void OnClick(string btnName)
{
switch (btnName)
{
case "CloseDefaultBtn":
if (GetControl<Image>("MenuBar").rectTransform.anchoredPosition.x == 0)
{
CloseMenu();
}
else if (GetControl<Image>("MenuBar").rectTransform.anchoredPosition.x == 110)
{
OpenMenu();
}
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;
}
}
}