138 lines
5.0 KiB
C#
138 lines
5.0 KiB
C#
using ZXKFramework;
|
|
using UnityEngine;
|
|
using System.Collections;
|
|
using DongWuYiXue.Main;
|
|
namespace DongWuYiXue.DaoNiaoShu
|
|
{
|
|
public class GameManager : MonoSingleton<GameManager>
|
|
{
|
|
bool isActive = false;
|
|
|
|
[SerializeField]
|
|
GameObject yingJianCanvas;
|
|
public SensorManager senSor;
|
|
//交互模块
|
|
[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;
|
|
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);
|
|
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");
|
|
//aiManager = transform.FindFirst<AIManager>("AIManager");
|
|
//存储数据初始化
|
|
sceneDataHandler.Init();
|
|
Game.Instance.fsm.ChangeState<GamePlayingState>();
|
|
uiManager.ShowUI<HomePanel>();
|
|
//虚拟相机初始化
|
|
virtualCameraManager.Init();
|
|
//高亮初始化
|
|
highLightManager.Init();
|
|
//状态机初始化
|
|
fsm.Init();
|
|
//动画模块初始化
|
|
timelineManager.Init();
|
|
//计时器初始化
|
|
timeCounterManager.Init();
|
|
|
|
if(MVC.GetModel<Main.GameModel>().modeType == ModeType.ShiXun )
|
|
{
|
|
uiManager.ShowUI<TreeViewPanel>();
|
|
uiManager.GetUI<TreeViewPanel>().BuildButton(MVC.GetModel<GameModel>().GetTreeViewData());
|
|
uiManager.ShowUI<TimePanel>();
|
|
uiManager.ShowUI<ScorePanel>();
|
|
}
|
|
if ( MVC.GetModel<Main.GameModel>().modeType == ModeType.KaoHe)
|
|
{
|
|
uiManager.ShowUI<TimePanel>();
|
|
uiManager.ShowUI<ScorePanel>();
|
|
}
|
|
}
|
|
|
|
private void Update()
|
|
{
|
|
if (Input.GetKeyDown(KeyCode.Escape))
|
|
{
|
|
isActive = !isActive;
|
|
if (isActive)
|
|
{
|
|
yingJianCanvas.SetActive(true);
|
|
}
|
|
else
|
|
{
|
|
yingJianCanvas.SetActive(false);
|
|
}
|
|
}
|
|
}
|
|
|
|
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);
|
|
}
|
|
}
|
|
}
|