126 lines
4.7 KiB
C#
126 lines
4.7 KiB
C#
using ZXKFramework;
|
|
using UnityEngine;
|
|
using System.Collections;
|
|
namespace YiLiao.SiBuChuZhen
|
|
{
|
|
public class GameManager : MonoSingleton<GameManager>
|
|
{
|
|
//交互模块
|
|
[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<Main.GameModel>().Init();
|
|
MVC.GetModel<Main.GameModel>().modeType = ModeType.KaoHe;
|
|
MVC.GetModel<Main.GameModel>().mainData = MVC.GetModel<Main.GameModel>().excelData.GetMainData(2);
|
|
}
|
|
MVC.RegisterModel(new GameModel());
|
|
yield return MVC.GetModel<GameModel>().Init();
|
|
Game.Instance.eventManager.AddListener<PlayTrueOrFalseEvent>(PlayTrueOrFalseSound);
|
|
Game.Instance.eventManager.AddListener<PlaySoundEvent>(PlaySound);
|
|
Game.Instance.eventManager.AddListener<TipEvent>(ShowTip);
|
|
sceneDataHandler = transform.FindFirst<SceneDataHandler>("SceneDataHandler");
|
|
interactionManager = transform.FindFirst<InteractionManager>("InteractionManager");
|
|
virtualCameraManager = transform.FindFirst<VirtualCameraManager>("VirtualCameraManager");
|
|
fsm = transform.FindFirst<FSMManager>("FSMManager");
|
|
timelineManager = transform.FindFirst<TimelineClipManager>("TimelineManager");
|
|
highLightManager = transform.FindFirst<HighLightManager>("HighLightManager");
|
|
timeCounterManager = transform.FindFirst<TimeCounterManager>("TimeCounterManager");
|
|
kaoheManager = transform.FindFirst<KaoHeManager>("KaoHeManager");
|
|
playerManager = transform.FindFirst<PlayerManager>("PlayerManager");
|
|
net = transform.FindFirst<NetAsyncMgr>("NetAsyncMgr");
|
|
//存储数据初始化
|
|
sceneDataHandler.Init();
|
|
//平台适配初始化
|
|
Game.Instance.AdapterInit();
|
|
uiManager.ShowUI<TipPanel>();
|
|
//uiManager.ShowUI<TipPanel>();
|
|
uiManager.ShowUI<NavPanel>();
|
|
//虚拟相机初始化
|
|
virtualCameraManager.Init();
|
|
//高亮初始化
|
|
highLightManager.Init();
|
|
//状态机初始化
|
|
fsm.Init();
|
|
//动画模块初始化
|
|
timelineManager.Init();
|
|
//计时器初始化
|
|
timeCounterManager.Init();
|
|
timeCounterManager.StartTimeCounter(str =>
|
|
{
|
|
uiManager.GetUI<NavPanel>().SetTime(str);
|
|
});
|
|
kaoheManager.Init();
|
|
kaoheManager.callBack = totalScore =>
|
|
{
|
|
uiManager.GetUI<NavPanel>().SetScore(totalScore.ToString());
|
|
};
|
|
|
|
}
|
|
|
|
private void ShowTip(TipEvent e)
|
|
{
|
|
uiManager.GetUI<TipPanel>().AddText(e.text);
|
|
uiManager.GetUI<TipPanel>().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<Main.GameModel>().mainData.folder + "/Sounds/right");
|
|
}
|
|
else
|
|
{
|
|
Game.Instance.sound.PlayMS(MVC.GetModel<Main.GameModel>().mainData.folder + "/Sounds/false");
|
|
}
|
|
}
|
|
private void OnDestroy()
|
|
{
|
|
Game.Instance.eventManager.RemoveListener<PlayTrueOrFalseEvent>(PlayTrueOrFalseSound);
|
|
Game.Instance.eventManager.RemoveListener<PlaySoundEvent>(PlaySound);
|
|
Game.Instance.eventManager.RemoveListener<TipEvent>(ShowTip);
|
|
}
|
|
}
|
|
}
|