using ZXKFramework; using UnityEngine; using System.Collections; namespace YiLiao.SiBuChuZhen { public class GameManager : MonoSingleton { //交互模块 [HideInInspector] public InteractionManager interactionManager; //动画播放模块 [HideInInspector] public TimelineClipManager timelineManager; [HideInInspector] public FSMManager fsm; //玩家管理器 [HideInInspector] public PlayerManager playerManager; //高亮模块 [HideInInspector] public HighLightManager highLightManager; //计时模块 [HideInInspector] public TimeCounterManager timeCounterManager; //成绩模块 [HideInInspector] public KaoHeManager kaoheManager; //UI模块 [HideInInspector] public IUIManager uiManager = new UIManager(); //虚拟相机模块 [HideInInspector] public VirtualCameraManager virtualCameraManager; [HideInInspector] public NetAsyncMgr net; public bool test; [HideInInspector] public SceneDataHandler sceneDataHandler; IEnumerator Start() { if (test) { //数据初始化 MVC.RegisterModel(new Main.GameModel()); yield return MVC.GetModel().Init(); MVC.GetModel().modeType = ModeType.KaoHe; MVC.GetModel().mainData = MVC.GetModel().excelData.GetMainData(2); } MVC.RegisterModel(new GameModel()); yield return MVC.GetModel().Init(); Game.Instance.eventManager.AddListener(PlayTrueOrFalseSound); Game.Instance.eventManager.AddListener(PlaySound); Game.Instance.eventManager.AddListener(ShowTip); sceneDataHandler = transform.FindFirst("SceneDataHandler"); interactionManager = transform.FindFirst("InteractionManager"); virtualCameraManager = transform.FindFirst("VirtualCameraManager"); fsm = transform.FindFirst("FSMManager"); timelineManager = transform.FindFirst("TimelineManager"); highLightManager = transform.FindFirst("HighLightManager"); timeCounterManager = transform.FindFirst("TimeCounterManager"); kaoheManager = transform.FindFirst("KaoHeManager"); playerManager = transform.FindFirst("PlayerManager"); net = transform.FindFirst("NetAsyncMgr"); //存储数据初始化 sceneDataHandler.Init(); //平台适配初始化 Game.Instance.AdapterInit(); uiManager.ShowUI(); //uiManager.ShowUI(); uiManager.ShowUI(); //虚拟相机初始化 virtualCameraManager.Init(); //高亮初始化 highLightManager.Init(); //状态机初始化 fsm.Init(); //动画模块初始化 timelineManager.Init(); //计时器初始化 timeCounterManager.Init(); timeCounterManager.StartTimeCounter(str => { uiManager.GetUI().SetTime(str); }); kaoheManager.Init(); kaoheManager.callBack = totalScore => { uiManager.GetUI().SetScore(totalScore.ToString()); }; } private void ShowTip(TipEvent e) { uiManager.GetUI().AddText(e.text); uiManager.GetUI().HighlightText(e.text); } private void PlaySound(PlaySoundEvent e) { Game.Instance.sound.PlayBGM(e.path, false, clip => { e.callBack?.Invoke(clip.length); }); } private void PlayTrueOrFalseSound(PlayTrueOrFalseEvent e) { if (e.isTrue) { Game.Instance.sound.PlayMS(MVC.GetModel().mainData.folder + "/Sounds/right"); } else { Game.Instance.sound.PlayMS(MVC.GetModel().mainData.folder + "/Sounds/false"); } } private void OnDestroy() { Game.Instance.eventManager.RemoveListener(PlayTrueOrFalseSound); Game.Instance.eventManager.RemoveListener(PlaySound); Game.Instance.eventManager.RemoveListener(ShowTip); } } }