示例#1
0
    //下载UI  会将引用的纹理集载入
    public bool LoadUI(string _prefab, LoadUICallback callback)
    {
        string prefabName = _prefab + ".prefab";

        if (!mConfig.WinDatas.ContainsKey(prefabName))
        {
            //这里尝试使用 Resource.Load 来载入Resource下的预设
            GameDebug.Log("包里没有找到UI " + prefabName);
            return(false);
        }

        //加入等待回调
        if (!mLoadCallbacks.ContainsKey(prefabName))
        {
            mLoadCallbacks.Add(prefabName, new ArrayList());
            mLoadCallbacks[prefabName].Add(callback);

            WindowData data = mConfig.WinDatas[prefabName] as WindowData;

            BehaviourUtil.StartCoroutine(DownloadUI("Window/", prefabName, data.refAtlas));
        }
        else
        {
            mLoadCallbacks[prefabName].Add(callback);
        }
        return(true);
    }
示例#2
0
    private void OnLoadComplete(string prefabName, AssetParam param)
    {
        if (!mLoadCallbacks.ContainsKey(prefabName))
        {
            return;
        }
        ArrayList list = mLoadCallbacks[prefabName];

        for (int i = 0; i < list.Count; ++i)
        {
            LoadUICallback callback = list[i] as LoadUICallback;
            if (callback != null)
            {
                GameObject obj = param.asset.Data.Instantiate() as GameObject;
                obj.SetActive(false);
                callback(obj);
            }
        }
        mLoadCallbacks[prefabName].Clear();
        mLoadCallbacks.Remove(prefabName);
    }