Пример #1
0
    public void LoadInstance(MFUIManager.MFUIID id,string path, string goName,bool preLoad) //加载资源并实例化
    {
        if (m_dictResNameToObj.ContainsKey(path))
        {
            MFUIGameObjectPoolUnit unit = new MFUIGameObjectPoolUnit();
            unit.isFree = false;
            unit.poolUnit = (GameObject)(GameObject.Instantiate(m_dictResNameToObj[path]));
            unit.poolUnit.name = goName;

            if (preLoad)
            {
                unit.isFree = true;
                MFUIUtils.ShowGameObject(false, unit.poolUnit);
            }

            MFUIGameObjectPool.GetSingleton().m_listResPathToPoolUnit[path].Add(unit);

            MFUIGameObjectPool.GetSingleton().ResourceLoaded(goName);
        }
        else
        {

            AssetCacheMgr.GetUIResource(path, (obj) =>
            {
                if (obj == null)
                {
                    MFUIUtils.MFUIDebug(string.Concat(path, " Not Found ! "));
                    return;
                }

                if (m_dictResNameToObj.ContainsKey(path))
                {
                    MFUIUtils.MFUIDebug("Same Key in ResNameToObj Dict , Now Replace It");
                }
                //m_dictResNameToObj.Add(path, obj);
                m_dictResNameToObj[path] = obj;

                if (!m_dictUIIDToObjList.ContainsKey(id))
                {
                    m_dictUIIDToObjList.Add(id, new List<Object>());
                }

                if (!m_dictUIIDToObjList[id].Contains(obj))
                {
                    m_dictUIIDToObjList[id].Add(obj);
                }

                MFUIGameObjectPoolUnit unit = new MFUIGameObjectPoolUnit();
                unit.isFree = false;
                unit.poolUnit = (GameObject)(GameObject.Instantiate(m_dictResNameToObj[path]));
                unit.poolUnit.name = goName;

                if (preLoad)
                {
                    unit.isFree = true;
                    MFUIUtils.ShowGameObject(false, unit.poolUnit);
                }

                MFUIGameObjectPool.GetSingleton().m_listResPathToPoolUnit[path].Add(unit);

                MFUIGameObjectPool.GetSingleton().ResourceLoaded(goName);
            });
            //Object obj = Resources.Load(path);

            //if (obj == null)
            //{
            //    MFUIUtils.MFUIDebug(string.Concat(path, " Not Found ! "));
            //    return;
            //}
            //m_dictResNameToObj.Add(path, obj);

            //MFUIGameObjectPoolUnit unit = new MFUIGameObjectPoolUnit();
            //unit.isFree = false;
            //unit.poolUnit = (GameObject)(GameObject.Instantiate(m_dictResNameToObj[path]));
            //unit.poolUnit.name = goName;

            //MFUIGameObjectPool.GetSingleton().m_listResPathToPoolUnit[path].Add(unit);

            //MFUIGameObjectPool.GetSingleton().ResourceLoaded(goName);
        }
    }
Пример #2
0
    public void LoadInstance(MFUIManager.MFUIID id, string path, string goName, bool preLoad) //加载资源并实例化
    {
        if (m_dictResNameToObj.ContainsKey(path))
        {
            MFUIGameObjectPoolUnit unit = new MFUIGameObjectPoolUnit();
            unit.isFree        = false;
            unit.poolUnit      = (GameObject)(GameObject.Instantiate(m_dictResNameToObj[path]));
            unit.poolUnit.name = goName;

            if (preLoad)
            {
                unit.isFree = true;
                MFUIUtils.ShowGameObject(false, unit.poolUnit);
            }

            MFUIGameObjectPool.GetSingleton().m_listResPathToPoolUnit[path].Add(unit);

            MFUIGameObjectPool.GetSingleton().ResourceLoaded(goName);
        }
        else
        {
            AssetCacheMgr.GetUIResource(path, (obj) =>
            {
                if (obj == null)
                {
                    MFUIUtils.MFUIDebug(string.Concat(path, " Not Found ! "));
                    return;
                }

                if (m_dictResNameToObj.ContainsKey(path))
                {
                    MFUIUtils.MFUIDebug("Same Key in ResNameToObj Dict , Now Replace It");
                }
                //m_dictResNameToObj.Add(path, obj);
                m_dictResNameToObj[path] = obj;

                if (!m_dictUIIDToObjList.ContainsKey(id))
                {
                    m_dictUIIDToObjList.Add(id, new List <Object>());
                }

                if (!m_dictUIIDToObjList[id].Contains(obj))
                {
                    m_dictUIIDToObjList[id].Add(obj);
                }

                MFUIGameObjectPoolUnit unit = new MFUIGameObjectPoolUnit();
                unit.isFree        = false;
                unit.poolUnit      = (GameObject)(GameObject.Instantiate(m_dictResNameToObj[path]));
                unit.poolUnit.name = goName;

                if (preLoad)
                {
                    unit.isFree = true;
                    MFUIUtils.ShowGameObject(false, unit.poolUnit);
                }

                MFUIGameObjectPool.GetSingleton().m_listResPathToPoolUnit[path].Add(unit);

                MFUIGameObjectPool.GetSingleton().ResourceLoaded(goName);
            });
            //Object obj = Resources.Load(path);

            //if (obj == null)
            //{
            //    MFUIUtils.MFUIDebug(string.Concat(path, " Not Found ! "));
            //    return;
            //}
            //m_dictResNameToObj.Add(path, obj);

            //MFUIGameObjectPoolUnit unit = new MFUIGameObjectPoolUnit();
            //unit.isFree = false;
            //unit.poolUnit = (GameObject)(GameObject.Instantiate(m_dictResNameToObj[path]));
            //unit.poolUnit.name = goName;

            //MFUIGameObjectPool.GetSingleton().m_listResPathToPoolUnit[path].Add(unit);

            //MFUIGameObjectPool.GetSingleton().ResourceLoaded(goName);
        }
    }