protected override void OnCreate(UnityEngine.Object asset) { if (asset == null) { return; } TextAsset desc = asset as TextAsset; package = UIPackage.AddPackage(desc.bytes, null, (string name, string extension, Type type, out DestroyMethod destroyMethod) => { destroyMethod = DestroyMethod.None; string assetPath = string.Format("{0}/{1}_{2}.fui", uiMrg.windowFolder, package.name, name).ToLower(); UIPackageDependenceObject depence = null; if (!loading.TryGetValue(assetPath, out depence)) { if (!dependences.TryGetValue(assetPath, out depence)) { depence = RenderFactory.CreateInstance <UIPackageDependenceObject>(assetPath, this); loading.Add(assetPath, depence); } } return(depence.asset); }); }
public UIPackageAsset(string packageName, UIManager uiMrg, UIPackageDependenceAsset dependenceAsset) { this.uiMrg = uiMrg; this.dependenceAsset = dependenceAsset; List <string> dpFiles = dependenceAsset.GetDependenceFiles(packageName); for (int i = 0; i < dpFiles.Count; i++) { string[] fileNames = dpFiles[i].Split('.'); string assetPath = string.Format("{0}/{1}.fui", uiMrg.windowFolder, fileNames[0]).ToLower(); UIPackageDependenceObject depence = RenderFactory.CreateInstance <UIPackageDependenceObject>(assetPath, this); loading.Add(assetPath, depence); } }
private UIPackageAsset LoadPackageAsync(string packageName) { UIPackageAsset package = null; if (!m_PackageLoading.TryGetValue(packageName, out package)) { if (!m_PackageAssets.TryGetValue(packageName, out package)) { string descPath = string.Format("{0}/{1}_fui.fui", windowFolder, packageName).ToLower(); package = RenderFactory.CreateInstance <UIPackageAsset>(descPath, null, this); m_PackageLoading.Add(packageName, package); } } return(package); }
public override void Initialize() { GameObject uiRoot = GameObject.Find("FairyGUI"); if (uiRoot == null) { throw new Exception("UIRoot is null.please create it."); } this.windowRoot = uiRoot.transform.Find("Windows"); this.windowFolder = "res/ui/fairygui"; this.windowCamera = uiRoot.transform.GetComponentInChildren <Camera>(); m_Instance = this; ms_MutexGroups.Add(UIWindowGroup.Window); AddRollbackGroup(UIWindowGroup.Window); m_PackageDependenceAsset = RenderFactory.CreateInstance <UIPackageDependenceAsset>(string.Format("{0}/FairyGUIPackageDependences.fui", this.windowFolder), null); }
private UIPackageAsset LoadPackage(string packageName) { UIPackageAsset package = null; if (!m_PackageAssets.TryGetValue(packageName, out package)) { string descPath = string.Format("{0}/{1}_fui.fui", windowFolder, packageName).ToLower(); package = RenderFactory.CreateInstance <UIPackageAsset>(descPath, null, packageName, this, m_PackageDependenceAsset); m_PackageAssets.Add(packageName, package); } //加载依赖包 List <string> dependences = m_PackageDependenceAsset.GetDependencePackages(packageName); for (int d = 0; d < dependences.Count; d++) { LoadPackage(dependences[d]); } package.ReferenceCount++; return(package); }