123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209 |
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.UI;
- /// <summary>
- /// 这里主要处理课程开始后的UI
- ///
- /// </summary>
- public class CoursePannelManager : MonoBehaviour
- {
- [SerializeField]
- private CourseBarView CourseUI;
- [SerializeField]
- private GameObject Quanxi;
- [SerializeField]
- private BasePannel[] pannelAry;//所有的POP弹框
- private Dictionary<PannelType, BasePannel> pannelDict = new Dictionary<PannelType, BasePannel>();
- [SerializeField]
- private OnLineUserListPannel mOnLineUserListPannel;
- [SerializeField]
- private StudentPannel mStudentUIPannel;
- //当前的展示页面
- private PannelType curType = PannelType.Default;
- private void Awake()
- {
- mOnLineUserListPannel.Hide();
- mStudentUIPannel.Hide();
- }
- void Start()
- {
- InitPannels();
- CourseUI.Hide();
- SetQuanxi(false);
- MessageCenterController.Instance.Register(GameEnum.MESSAGE_ENTER_COURSE, EnterCourse);//进入房间
- MessageCenterController.Instance.Register(GameEnum.MESSAGE_EXIT_COURSE, ExitCourse);//关闭房间
- MessageCenterController.Instance.Register(GameEnum.MESSAGE_SHOW_COURSE, ShowCourse);//显示房间
- MessageCenterController.Instance.Register(GameEnum.MESSAGE_HIDE_COURSE, HideCourse);//隐藏房间
- MessageCenterController.Instance.Register(GameEnum.MESSAGE_SHOW_LOGOUT, ExitCourse);//登出
- MessageCenterController.Instance.Register(GameEnum.MESSAGE_RESET_ACCOUNT, ExitCourse);//账号重置
- MessageCenterController.Instance.Register(GameEnum.MESSAGE_SHOW_PANNEL_BY_TYPE, ShowPannelByType);//
- MessageCenterController.Instance.Register(GameEnum.MESSAGE_SEND_CHANGE_ROOM_OWNER_REFRESH, OwnerChange);//有房主的变动
- MessageCenterController.Instance.Register(GameEnum.MESSAGE_SHOW_MSG_NOTICE, ShowNotice);//显示提示
- MessageCenterController.Instance.Register(GameEnum.MESSAGE_HIDE_MSG_NOTICE, HideNotice);//隐藏提示
- }
- private void OnDestroy()
- {
- MessageCenterController.Instance.UnRegister(GameEnum.MESSAGE_ENTER_COURSE, EnterCourse);//进入房间
- MessageCenterController.Instance.UnRegister(GameEnum.MESSAGE_EXIT_COURSE, ExitCourse);//关闭房间
- MessageCenterController.Instance.UnRegister(GameEnum.MESSAGE_SHOW_LOGOUT, ExitCourse);//登出
- MessageCenterController.Instance.UnRegister(GameEnum.MESSAGE_RESET_ACCOUNT, ExitCourse);//账号重置
- MessageCenterController.Instance.UnRegister(GameEnum.MESSAGE_SHOW_PANNEL_BY_TYPE, ShowPannelByType);//房间列表
- MessageCenterController.Instance.UnRegister(GameEnum.MESSAGE_SEND_CHANGE_ROOM_OWNER_REFRESH, OwnerChange);//有房主的变动
- MessageCenterController.Instance.UnRegister(GameEnum.MESSAGE_SHOW_MSG_NOTICE, ShowNotice);//显示提示
- MessageCenterController.Instance.UnRegister(GameEnum.MESSAGE_HIDE_MSG_NOTICE, HideNotice);//隐藏提示
- }
- private void InitPannels()
- {
- //刚开始的时候影藏Pannel的列表
- for (int i = 0; i < pannelAry.Length; i++)
- {
- if (pannelDict.ContainsKey(pannelAry[i].MType))
- {
- CDebug.Log(pannelAry[i].name + " 类型异常");
- }
- else
- {
- pannelAry[i].Hide();
- pannelDict.Add(pannelAry[i].MType, pannelAry[i]);
- }
- }
- }
- private void ResetAllPannelDatas()
- {
- //刚开始的时候影藏Pannel的列表
- for (int i = 0; i < pannelAry.Length; i++)
- {
- pannelAry[i].InitManagerData();
- }
- }
- private void ChangePannel(PannelType t)
- {
- if (curType != PannelType.Default)
- pannelDict[curType].Hide();
- curType = t;
- if (curType != PannelType.Default)
- pannelDict[curType].Show();
- if (curType != PannelType.Question)
- {
- MessageCenterController.Instance.Broadcast(GameEnum.MESSAGE_HIDE_IMAGE_POP);
- }
- }
- private void ShowPannelByType(System.Object datas = null)
- {
- PannelType t = (PannelType)datas;
- pannelDict[t].InitManagerData();
- ChangePannel(t);
- OwnerChange();
- this.CourseUI.Show();
- SetQuanxi(GamePlayerData.Instance.IsFangzhu());
- LoadPrefabManager.Instance.ResetObj();//清除加载的缓存
- }
- private string title_str = "{0}-{1}";
- private string user_name_str = "用户名: {0}";
- private string room_str = "房间名字: {0}";
- private void EnterCourse(System.Object datas = null)
- {
- UIDataManager.Instance.Init();//清空需要同步的数据
- LoadPrefabManager.Instance.ResetObj();//清除加载的缓存
- CourseUI.Show();//主面板的初始化
- SetQuanxi(GamePlayerData.Instance.IsFangzhu());
- if (GamePlayerData.Instance.IsFangzhu())
- {
- ResetAllPannelDatas();
- CDebug.Log("是房主直接打开默认的Pannel");
- ChangePannel(PannelType.Goal);
- }
- else
- {
- CDebug.Log("不是房主等待同步房主的Pannel");
- }
- OwnerChange();
- MessageCenterController.Instance.Broadcast(GameEnum.MESSAGE_REFRESH_USER_LIST_DATA);
- MessageCenterController.Instance.Broadcast(GameEnum.MESSAGE_OPEN_COURSE_PANNEL);
- }
- private void ExitCourse(System.Object datas = null)
- {
- UIDataManager.Instance.Reset();
- //移除有可能存在的答案的弹框
- MessageCenterController.Instance.Broadcast(GameEnum.MESSAGE_HIDE_POP_BY_TYPE, PopType.Answer);
- CourseUI.Hide();
- SetQuanxi(false);
- if(pannelDict.ContainsKey(curType))
- pannelDict[curType].Hide();
- mOnLineUserListPannel.Hide();
- mStudentUIPannel.Hide();
- LoadPrefabManager.Instance.ResetObj();//清除加载的缓存
- UIDataManager.Instance.ClearAll();
- }
- private void ShowCourse(System.Object datas = null)
- {
- OwnerChange();
- this.CourseUI.Show();
- pannelDict[curType].Show();
- SetQuanxi(GamePlayerData.Instance.IsFangzhu());
- LoadPrefabManager.Instance.ResetObj();//清除加载的缓存
- }
- private void HideCourse(System.Object datas = null)
- {
- this.CourseUI.Hide();
- mOnLineUserListPannel.Hide();
- mStudentUIPannel.Hide();
- SetQuanxi(false);
- if (pannelDict.ContainsKey(curType))
- pannelDict[curType].Hide();
- }
- private void SetQuanxi(bool v)
- {
- Quanxi.gameObject.SetActive(false);
- }
- private void OwnerChange(System.Object data = null)
- {
- if (GamePlayerData.Instance.user_type == 0 || GamePlayerData.Instance.user_type == 3)
- {
- mOnLineUserListPannel.Show();
- mStudentUIPannel.Hide();
- }
- else
- {
- mOnLineUserListPannel.Hide();
- mStudentUIPannel.Show();
- }
- }
- private void ShowNotice(System.Object data = null)
- {
- //CDebug.Log("ShowNotice-->" + data.ToString());
- }
- private void HideNotice(System.Object data = null)
- {
- //CDebug.Log("HideNotice-->");
- }
- private void ShowLogOut(System.Object data = null)
- {
- //如果当前面板有开启的话 就关掉它
- }
- private void RefreshChatTip()
- {
- }
- }
|