//下载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); }
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); }