Esempio n. 1
0
 /// <summary>
 /// 回收组件,取出两个场景同时存在的舞台组件,转移到新的场景,老的清除
 /// </summary>
 /// <param name="stage"></param>
 public virtual void RecoverStagePart(AbstractStage stage)
 {
     //遍历自身元件列表,找对方也有的
     foreach (string path in m_pathList)
     {
         if (stage.uiStageParts.ContainsKey(path))
         {
             //取出对方的组件,删除
             BaseStagePart part = stage.uiStageParts[path];
             stage.uiStageParts.Remove(path);
             //放入自身的组件列表中
             if (this.uiStageParts.ContainsKey(path))
             {
                 continue;
             }
             this.uiStageParts.Add(path, part);
             //Log.info("回收组件" + part.getViewName());
         }
     }
 }
Esempio n. 2
0
    protected BaseStagePart AddUiPart(string path, int depth)
    {
        if (!uiStageParts.ContainsKey(path))
        {
            GameObject prefab = ResDataManager.instance.GetObjectFromLocalPrefab(path, true);
            //TODO 缓存 prefab
            if (prefab == null || StageManager.root == null)
            {
                Log.infoError("BaseStage AddUiPart error:" + (prefab == null ? " 场景不存在 " : "") + (StageManager.root == null ? " StageManager.root不存在 " : "") + " path:" + path);
                return(null);
            }

            GameObject    go   = NGUITools.AddChild(this.gameObj, prefab);
            BaseStagePart part = go.GetComponent <BaseStagePart>();
            if (part)
            {
                //Log.info(Application.loadedLevelName+" addUIPart : " + path);
                //part.GetComponent<UIPanel>().depth = depth;
                uiStageParts.Add(path, part);
                part.Show();
                return(part);
            }
            else
            {
                throw new Exception("组件没有挂载UIStagePart脚本" + path);
            }
        }
        else
        {
            BaseStagePart part = this.uiStageParts[path].gameObject.GetComponent <BaseStagePart>();
            //part.GetComponent<UIPanel>().depth = depth;
            //执行初始化
            uiStageParts[path].Init();
        }
        return(uiStageParts[path]);
    }