Beispiel #1
0
        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);
            });
        }
Beispiel #2
0
        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);
            }
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        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);
        }