PanelMgr-----罗培羽

来源:互联网 发布:淘宝假学生证怎么办理 编辑:程序博客网 时间:2024/06/05 23:57
using UnityEngine;using System.Collections;using System.Collections.Generic;using System;public class PanelMgr : MonoBehaviour {    //单利    public static PanelMgr _instance;    //场景中的Canvas    private GameObject canvas;    //存放已经打开的UI面板    public Dictionary<string, PanelBase> panelDic;    //存放各层级对应的父物体    private Dictionary<PanelLayer, Transform> layerDic;    void Awake()    {        _instance = this;        InitLayer();        panelDic = new Dictionary<string, PanelBase>();    }    //初始化层    private void InitLayer()    {        canvas = GameObject.Find("Canvas");        if (canvas == null) return;        layerDic = new Dictionary<PanelLayer, Transform>();        foreach (PanelLayer p1 in Enum.GetValues(typeof(PanelLayer)))        {            string name = p1.ToString();            Transform t = canvas.transform.Find(name);            layerDic.Add(p1, t);        }    }    //打开面板    public void OpenPanel<T>(string skinPath,params object[] args) where T:PanelBase    {        string name = typeof(T).ToString();        if (panelDic.ContainsKey(name)) return;        //面板脚本        PanelBase panel = canvas.AddComponent<T>();        panel.Init(args);        panelDic.Add(name, panel);        //加载皮肤        skinPath = (skinPath != "" ? skinPath : panel.skinPath);        GameObject skin = Resources.Load<GameObject>(skinPath);        if (skin == null) return;        panel.skin = (GameObject)Instantiate(skin);        //坐标        Transform skinTrans = panel.skin.transform;        PanelLayer layer = panel.layer;        Transform parent = layerDic[layer];        skinTrans.SetParent(parent, false);        //panel生命周期        panel.OnShowing();        panel.OnShowed();    }    //关闭面板    public void ClosePanel(string name)    {        PanelBase panel = (PanelBase)panelDic[name];        if (panel == null) return;        panel.OnShowing();        panelDic.Remove(name);        panel.OnClosed();        GameObject.Destroy(panel.skin);        Component.Destroy(panel);    }}public enum PanelLayer{    //面板    Panel,    //提示信息    Tips}

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 三个月婴儿流清鼻涕怎么办 宝宝7个月流鼻涕怎么办 6个月孩子流鼻涕怎么办 十一个月孩子感冒流鼻涕怎么办 7个月孩子流鼻涕怎么办 18个月的宝宝流鼻涕怎么办 6个月宝宝咳嗽流鼻涕怎么办 18个月宝宝咳嗽流鼻涕怎么办 6个月宝宝流鼻涕打喷嚏怎么办 宝宝18个月流鼻涕怎么办 18个月宝宝感冒流鼻涕怎么办 小孩睡觉鼻子不通气怎么办 宝宝鼻子里有鼻涕出不来怎么办 孩子喉咙有痰呼呼响怎么办 六个月宝宝鼻塞怎么办速效办法 两个月小孩鼻子不通气怎么办 一岁宝宝流清鼻涕怎么办 孩子鼻子里有鼻涕怎么办 宝宝晚上睡觉鼻子不通气怎么办 宝宝感冒睡觉鼻子不通气怎么办 宝宝3个月流鼻涕怎么办 小孩吃着了发烧怎么办 半岁宝宝鼻子塞怎么办 宝宝伤风鼻子不通气怎么办 二十天的宝宝伤风鼻子不通怎么办 一个多月的宝宝鼻子有鼻屎怎么办 2个月宝宝鼻子里有鼻屎怎么办 四个月婴儿感冒发烧怎么办 一个月婴儿感冒发烧怎么办 五个月婴儿感冒发烧怎么办 两个月的婴儿感冒发烧怎么办 9个月婴儿感冒发烧怎么办 两个月婴儿感冒鼻塞咳嗽怎么办 两个月婴儿感冒咳嗽流鼻涕怎么办 小孩感冒发烧怎么办速效办法 宝宝打喷嚏流清鼻涕怎么办 宝宝感冒流清鼻涕怎么办 2岁感冒流清鼻涕怎么办 小孩感冒流清鼻涕怎么办 4岁宝宝半夜发烧怎么办 四岁宝宝免疫力低下怎么办