private Dictionary<UIPanelType,GameObject> PanelCach= new Dictionary<UIPanelType, GameObject>();
private NBasePanel GetPanel(UIPanelType panelType)
{
GameObject instPanel;
//判断缓存里面有没有,如果没有,创建新的,如果有拿缓存里的
if (PanelCach.TryGetValue(panelType, out instPanel) == false){
//通过名字找路径
string path = "";
foreach (var item in json.PanelList)
{
if (item.PanelName == panelType.ToString())
{
path = item.PanelPath;
}
}
//实例化面板预制物
instPanel = GameObject.Instantiate(Resources.Load(path)) as GameObject;
//把加载后的面板添加到Canvas下面
instPanel.transform.SetParent(CanvasTransform, false);//参数1:Canvas坐标,参数2:是否更改世界坐标
PanelCach.Add(panelType, instPanel);//将新面板添加到缓存里
Debug.Log("新创建");
}
else
{
Debug.Log("用的缓存");
}
return instPanel.GetComponent<NBasePanel>();//返回面板的脚本
}