new_10007_YanCheng_Metrology/Assets/Template/Scripts/Project/Manager/OfficeManager.cs

98 lines
3.9 KiB
C#

using HighlightPlus;
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// create by adam
/// </summary>
public class OfficeManager : SingletonMono<OfficeManager>
{
/// <summary>
/// ÊÖ»ú
/// </summary>
public MobileController mobileController;
public MobileAttach10007_7002 mobileAttch10007;
private FirstPersonController firstPersonController;
private void Start()
{
firstPersonController = GameObject.FindGameObjectWithTag("Player").GetComponent<FirstPersonController>();
firstPersonController.gameObject.SetActive(false);
GameManager.EventMgr.AddEventListener(Enum_EventType.OfficeTimeLineOver, OfficeTimeLineOver);
GameManager.EventMgr.AddEventListener<bool>(Enum_EventType.PlayerCanMove, SwitchFirstPersonControllerMove);
GameManager.EventMgr.AddEventListener(Enum_EventType.InitializationUI, InitializationUI);
if (GameManager.RunModelMgr.ModeType == E_ModeType.Study)
{
GameManager.EventMgr.AddEventListener<int>(Enum_EventType.SwitchSubProcess, SwitchSubProcess);
}
}
public void SwitchFirstPersonControllerMove(bool isMove)
{
firstPersonController.playerCanMove = isMove;
}
private void SwitchSubProcess(int subProcess)
{
if (!GameManager.UIMgr.GetPanel<UI_TopTipPanel>())
{
GameManager.UIMgr.ShowPanel<UI_TopTipPanel>(E_UI_Layer.Mid, (panel) =>
{
panel.Init($"{GameManager.ProcessMgr.d_Scheme.CurrentProcess.processName}:<color=#00EEE6>{GameManager.ProcessMgr.d_Scheme.CurrentProcess.CurrentSubProcess.subProcessName}</color>", $"{GameManager.ProcessMgr.d_Scheme.CurrentProcess.CurrentSubProcess.tips}", false);
});
}
else
{
GameManager.UIMgr.GetPanel<UI_TopTipPanel>().Init($"{GameManager.ProcessMgr.d_Scheme.CurrentProcess.processName}:<color=#00EEE6>{GameManager.ProcessMgr.d_Scheme.CurrentProcess.CurrentSubProcess.subProcessName}</color>", $"{GameManager.ProcessMgr.d_Scheme.CurrentProcess.CurrentSubProcess.tips}", false);
}
}
private void OfficeTimeLineOver()
{
if (!GameManager.UIMgr.GetPanel<UI_MaskPanel>())
{
GameManager.UIMgr.ShowPanel<UI_MaskPanel>(E_UI_Layer.System, (panel) =>
{
panel.Init();
GameManager.EventMgr.EventTrigger(Enum_EventType.HideMask);
});
}
}
private void InitializationUI()
{
if (!GameManager.UIMgr.GetPanel<UI_TaskListPanel>())
{
GameManager.UIMgr.ShowPanel<UI_TaskListPanel>(E_UI_Layer.Bot, (panel) =>
{
panel.Init(GameManager.ProcessMgr.subProcessId);
});
}
if (GameManager.RunModelMgr.ModeType == E_ModeType.Study)
{
GameManager.EventMgr.EventTrigger<string>(Enum_EventType.SwitchSubProcessStepTriggerID, ProcessManager.Instance.subProcessStepTriggerID);
GameManager.EventMgr.EventTrigger(Enum_EventType.SwitchSubProcess, GameManager.ProcessMgr.subProcessId);
}
if (!GameManager.UIMgr.GetPanel<UI_MenuBar>())
{
GameManager.UIMgr.ShowPanel<UI_MenuBar>(E_UI_Layer.Mid, (panel) =>
{
panel.Init();
GameManager.EventMgr.EventTrigger(Enum_EventType.SwitchScene, GameManager.RunModelMgr.SceneType);
});
}
firstPersonController.gameObject.SetActive(true);
}
private void OnDestroy()
{
GameManager.EventMgr.RemoveEventListener(Enum_EventType.OfficeTimeLineOver, OfficeTimeLineOver);
GameManager.EventMgr.RemoveEventListener(Enum_EventType.InitializationUI, InitializationUI);
GameManager.EventMgr.RemoveEventListener<bool>(Enum_EventType.PlayerCanMove, SwitchFirstPersonControllerMove);
//GameManager.EventMgr.RemoveEventListener<int>(Enum_EventType.SwitchSubProcess, SwitchSubProcess);
}
}