using HighlightPlus; using System; using System.Collections; using System.Collections.Generic; using UnityEngine; /// /// create by adam /// public class OfficeManager : SingletonMono { public GameObject currentTool; public Transform spawnToolPos; public Transform tMDTips; /// /// ÊÖ»ú /// //public MobileController mobileController; //private FirstPersonController firstPersonController; private void Start() { //firstPersonController = GameObject.FindGameObjectWithTag("Player").GetComponent(); //firstPersonController.gameObject.SetActive(false); //GameManager.EventMgr.AddEventListener(Enum_EventType.OfficeTimeLineOver, OfficeTimeLineOver); //GameManager.EventMgr.AddEventListener(Enum_EventType.PlayerCanMove, SwitchFirstPersonControllerMove); GameManager.EventMgr.AddEventListener(Enum_EventType.InitializationUI, InitializationUI); GameManager.RunModelMgr.SceneType = E_SceneType.Site; if (GameManager.RunModelMgr.ModeType == E_ModeType.Study) { GameManager.EventMgr.AddEventListener(Enum_EventType.SwitchSubProcess, SwitchSubProcess); } InitializationUI(); GameManager.EventMgr.AddEventListener(Enum_EventType.TakeOutAndRetrievingTheTools, SetSpawnToolInfo); } public void SwitchFirstPersonControllerMove(bool isMove) { //firstPersonController.playerCanMove = isMove; } private void SwitchSubProcess(int subProcess) { if (!GameManager.UIMgr.GetPanel()) { GameManager.UIMgr.ShowPanel(E_UI_Layer.Mid, (panel) => { panel.Init($"{GameManager.ProcessMgr.d_Scheme.CurrentProcess.processName}:{GameManager.ProcessMgr.d_Scheme.CurrentProcess.CurrentSubProcess.subProcessName}", $"{GameManager.ProcessMgr.d_Scheme.CurrentProcess.CurrentSubProcess.tips}", false); }); } else { GameManager.UIMgr.GetPanel().Init($"{GameManager.ProcessMgr.d_Scheme.CurrentProcess.processName}:{GameManager.ProcessMgr.d_Scheme.CurrentProcess.CurrentSubProcess.subProcessName}", $"{GameManager.ProcessMgr.d_Scheme.CurrentProcess.CurrentSubProcess.tips}", false); } } private void OfficeTimeLineOver() { if (!GameManager.UIMgr.GetPanel()) { GameManager.UIMgr.ShowPanel(E_UI_Layer.System, (panel) => { panel.Init(); GameManager.EventMgr.EventTrigger(Enum_EventType.HideMask); }); } } private void InitializationUI() { if (!GameManager.UIMgr.GetPanel()) { GameManager.UIMgr.ShowPanel(E_UI_Layer.Bot, (panel) => { panel.Init(GameManager.ProcessMgr.subProcessId); }); } if (GameManager.RunModelMgr.ModeType == E_ModeType.Study) { GameManager.EventMgr.EventTrigger(Enum_EventType.SwitchSubProcessStepTriggerID, ProcessManager.Instance.subProcessStepTriggerID); GameManager.EventMgr.EventTrigger(Enum_EventType.SwitchSubProcess, GameManager.ProcessMgr.subProcessId); } if (!GameManager.UIMgr.GetPanel()) { GameManager.UIMgr.ShowPanel(E_UI_Layer.Mid, (panel) => { panel.Init(); GameManager.EventMgr.EventTrigger(Enum_EventType.SwitchScene, GameManager.RunModelMgr.SceneType); }); } if (!GameManager.UIMgr.GetPanel()) { GameManager.UIMgr.ShowPanel(E_UI_Layer.Mid, (panel) => { panel.Init(); }); } //firstPersonController.gameObject.SetActive(true); } private void OnDestroy() { //GameManager.EventMgr.RemoveEventListener(Enum_EventType.OfficeTimeLineOver, OfficeTimeLineOver); GameManager.EventMgr.RemoveEventListener(Enum_EventType.InitializationUI, InitializationUI); GameManager.EventMgr.RemoveEventListener(Enum_EventType.TakeOutAndRetrievingTheTools, SetSpawnToolInfo); //GameManager.EventMgr.RemoveEventListener(Enum_EventType.PlayerCanMove, SwitchFirstPersonControllerMove); if (GameManager.UIMgr.GetPanel()) { GameManager.UIMgr.HidePanel(); } Debug.Log("OfficeManager OnDestroy"); //GameManager.EventMgr.RemoveEventListener(Enum_EventType.SwitchSubProcess, SwitchSubProcess); } //ÒÆÖ²ÓÚLiveSceneManager public void SetSpawnToolInfo(GameObject tool) { if (tool == null) return; currentTool = tool; currentTool.transform.parent = Camera.main.transform; currentTool.transform.localPosition = spawnToolPos.localPosition; currentTool.transform.localEulerAngles = spawnToolPos.localEulerAngles; if (currentTool.GetComponent()) { currentTool.GetComponent().SetHeadPosAndEulerang(currentTool.transform.localPosition, currentTool.transform.localEulerAngles); currentTool.GetComponent().AddStartAction(() => { tMDTips.gameObject.SetActive(false); }); currentTool.GetComponent().AddEndAction(() => { tMDTips.gameObject.SetActive(true); }); } if (currentTool.GetComponent()) { currentTool.GetComponent().SetHeadPosAndEulerang(currentTool.transform.localPosition, currentTool.transform.localEulerAngles); } tMDTips.gameObject.SetActive(true); } public void OnCheckSubProcess(bool ifdestroy = true) { if (currentTool != null) { if (tMDTips != null) tMDTips.gameObject.SetActive(false); if (ifdestroy) DestroyImmediate(currentTool); currentTool = null; GameManager.EventMgr.EventTrigger(Enum_EventType.TakeOutAndRetrievingTheTools, null); } } private void Update() { if (Input.GetKeyDown(KeyCode.Escape)) { if (currentTool != null) { Debug.Log("Escape"); OnCheckSubProcess(); } } } }