Esempio n. 1
0
        public static void UpdateWindowInformation()
        {
            EditorApplication.ExecuteMenuItem("Window/FairyGUI - Refresh Packages And Panels");
            _fairyGUIConfig.Clear();
            string[] fairyGUIResourcesPaths = Directory.GetFiles(ConstData.UIDataPath,
                                                                 "*_fui.bytes", SearchOption.AllDirectories);
            for (int i = 0; i < fairyGUIResourcesPaths.Length; i++)
            {
                string             resourcesPath      = fairyGUIResourcesPaths[i].Replace("\\", "/");
                string[]           paths              = resourcesPath.Split('/');
                string             packageName        = paths[paths.Length - 1].Substring(0, paths[paths.Length - 1].Length - 10);
                string             windowName         = packageName;
                FairyGUIWindowInfo fairyGuiWindowInfo = new FairyGUIWindowInfo();
                int packagePathStart = resourcesPath.IndexOf("Assets/");
                fairyGuiWindowInfo.packagePath = resourcesPath.Substring(packagePathStart, resourcesPath.IndexOf(paths[paths.Length - 1]) - packagePathStart);
                fairyGuiWindowInfo.packageName = packageName;

                UIPackage.RemoveAllPackages();
                UIPackage.AddPackage(fairyGuiWindowInfo.packagePath + fairyGuiWindowInfo.packageName);
                List <string> list = new List <string>();
                foreach (var v in UIPackage.GetPackageItems(fairyGuiWindowInfo.packageName))
                {
                    if (v.Value.objectType == ObjectType.Component)
                    {
                        list.Add(v.Value.name);
                    }
                }
                fairyGuiWindowInfo.WindowNames = list;
                if (packageName.StartsWith(ConstData.ResPackagePrefix))
                {
                    fairyGuiWindowInfo.fairyGuiWindowType = FairyGUIWindowTypes.Resource;
                }
                else
                {
                    fairyGuiWindowInfo.fairyGuiWindowType = FairyGUIWindowTypes.Window;
                }

                _fairyGUIConfig.Add(fairyGuiWindowInfo);
            }
            if (!Directory.Exists(Application.streamingAssetsPath))
            {
                Directory.CreateDirectory(Application.streamingAssetsPath);
            }
            string bytePath = ConstData.UIConfigPath;

            if (File.Exists(bytePath))
            {
                File.Delete(bytePath);
            }
            using (FileStream fileStream = new FileStream(bytePath, FileMode.Create, FileAccess.Write, FileShare.Write))
            {
                fileStream.Write(Encoding.UTF8.GetBytes(JsonMapper.ToJson(_fairyGUIConfig)), 0, Encoding.UTF8.GetBytes(JsonMapper.ToJson(_fairyGUIConfig)).Length);
            }
            Debug.Log("Update VFairyGUIConfigFile Succeed!");
            UIPackage.RemoveAllPackages();
            AssetDatabase.Refresh();
        }