예제 #1
0
        private static bool CheckNewVersionDialog(List <PackageRepository> requestPackageDatas,
                                                  List <PackageRepository> cachedPackageDatas)
        {
            var installedPackageVersionsModel = PackageKitArchitectureConfig.GetModel <IInstalledPackageVersionsConfigModel>();

            foreach (var requestPackageData in requestPackageDatas)
            {
                var cachedPacakgeData =
                    cachedPackageDatas.Find(packageData => packageData.name == requestPackageData.name);

                var installedPackageVersion = installedPackageVersionsModel.GetByName(requestPackageData.name);

                if (installedPackageVersion == null)
                {
                }
                else if (cachedPacakgeData == null &&
                         requestPackageData.VersionNumber > installedPackageVersion.VersionNumber ||
                         cachedPacakgeData != null && requestPackageData.Installed &&
                         requestPackageData.VersionNumber > cachedPacakgeData.VersionNumber &&
                         requestPackageData.VersionNumber > installedPackageVersion.VersionNumber)
                {
                    ShowDisplayDialog(requestPackageData.name);
                    return(false);
                }
            }

            return(true);
        }
예제 #2
0
        public void Execute()
        {
            var model = PackageKitArchitectureConfig.GetModel <IPackageManagerModel>();

            var packageTypeConfigModel = PackageKitArchitectureConfig.GetModel <IPackageTypeConfigModel>();
            var categories             = model.Repositories.Select(p => p.type).Distinct()
                                         .Select(t => packageTypeConfigModel.GetFullTypeName(t))
                                         .ToList();

            categories.Insert(0, "all");
            PackageManagerState.Categories.Value = categories;
        }
예제 #3
0
        public void Execute()
        {
            var model  = PackageKitArchitectureConfig.GetModel <IPackageManagerModel>();
            var server = PackageKitArchitectureConfig.GetModel <IPackageManagerServer>();
            var installedPackageVersionsModel = PackageKitArchitectureConfig.GetModel <IInstalledPackageVersionsConfigModel>();

            installedPackageVersionsModel.Reload();

            PackageManagerState.PackageRepositories.Value = model.Repositories.OrderBy(p => p.name).ToList();
            PackageKitArchitectureConfig.SendCommand <UpdateCategoriesFromModelCommand>();

            server.GetAllRemotePackageInfoV5((list, categories) =>
            {
                model.Repositories = list.OrderBy(p => p.name).ToList();
                PackageManagerState.PackageRepositories.Value = model.Repositories;
                PackageKitArchitectureConfig.SendCommand <UpdateCategoriesFromModelCommand>();
            });
        }
예제 #4
0
        public void Execute()
        {
            var model            = PackageKitArchitectureConfig.GetModel <IPackageManagerModel>();
            var categoryIndex    = PackageManagerState.CategoryIndex.Value;
            var categories       = PackageManagerState.Categories.Value;
            var accessRightIndex = PackageManagerState.AccessRightIndex.Value;

            var repositories = model
                               .Repositories
                               .Where(p => p.name.ToLower().Contains(mKey))
                               .Where(p => categoryIndex == 0 || p.type.ToString() == categories[categoryIndex])
                               .Where(p => accessRightIndex == 0 ||
                                      accessRightIndex == 1 && p.accessRight == "public" ||
                                      accessRightIndex == 2 && p.accessRight == "private"
                                      )
                               .OrderBy(p => p.name)
                               .ToList();

            PackageManagerState.PackageRepositories.Value = repositories;
        }
예제 #5
0
        public static void Do(PackageRepository requestPackageData)
        {
            var tempFile = "Assets/" + requestPackageData.name + ".unitypackage";

            Debug.Log(requestPackageData.latestDownloadUrl + ">>>>>>:");

            EditorUtility.DisplayProgressBar("插件更新", "插件下载中 ...", 0.1f);

            EditorHttp.Download(requestPackageData.latestDownloadUrl, response =>
            {
                if (response.Type == ResponseType.SUCCEED)
                {
                    File.WriteAllBytes(tempFile, response.Bytes);

                    EditorUtility.ClearProgressBar();

                    AssetDatabase.ImportPackage(tempFile, false);

                    File.Delete(tempFile);

                    AssetDatabase.Refresh();

                    Debug.Log("PackageManager:插件下载成功");


                    PackageKitArchitectureConfig.GetModel <IInstalledPackageVersionsConfigModel>()
                    .Reload();
                }
                else
                {
                    EditorUtility.ClearProgressBar();

                    EditorUtility.DisplayDialog(requestPackageData.name,
                                                "插件安装失败,请联系 [email protected] 或者加入 QQ 群:623597263" + response.Error + ";", "OK");
                }
            }, OnProgressChanged);
        }
        public void OnCreateUIPanelClick()
        {
            var panelName = mPanelNameToCreate;

            if (panelName.IsNotNullAndEmpty())
            {
                var fullScenePath = "Assets/Scenes/TestUIPanels/".CreateDirIfNotExists()
                                    .Append("Test{0}.unity".FillFormat(panelName)).ToString();

                var panelPrefabPath = "Assets/Art/UIPrefab/".CreateDirIfNotExists()
                                      .Append("{0}.prefab".FillFormat(panelName)).ToString();

                if (File.Exists(panelPrefabPath))
                {
                    PackageKitArchitectureConfig.GetUtility <IEditorDialogUtility>()
                    .ShowErrorMsg("UI 界面已存在:{0}".FillFormat(panelPrefabPath));
                    return;
                }

                if (File.Exists(fullScenePath))
                {
                    PackageKitArchitectureConfig.GetUtility <IEditorDialogUtility>()
                    .ShowErrorMsg("测试场景已存在:{0}".FillFormat(fullScenePath));
                    return;
                }

                RenderEndCommandExecuter.PushCommand(() =>
                {
                    var currentScene = SceneManager.GetActiveScene();
                    EditorSceneManager.SaveScene(currentScene);

                    var scene = EditorSceneManager.NewScene(NewSceneSetup.EmptyScene);
                    EditorSceneManager.SaveScene(scene, fullScenePath);

                    var uiroot = Resources.Load <GameObject>("UIRoot").Instantiate().Name("UIRoot");

                    var designTransform = uiroot.transform.Find("Design");

                    var gameObj = new GameObject(panelName);
                    gameObj.transform.Parent(designTransform)
                    .LocalScaleIdentity();

                    var rectTransform                = gameObj.AddComponent <RectTransform>();
                    rectTransform.offsetMin          = Vector2.zero;
                    rectTransform.offsetMax          = Vector2.zero;
                    rectTransform.anchoredPosition3D = Vector3.zero;
                    rectTransform.anchorMin          = Vector2.zero;
                    rectTransform.anchorMax          = Vector2.one;

                    var prefab = PrefabUtils.SaveAndConnect(panelPrefabPath, gameObj);

                    EditorSceneManager.SaveScene(scene);

                    // 标记 AssetBundle
                    ResKitAssetsMenu.MarkAB(panelPrefabPath);

                    var tester              = new GameObject("Test{0}".FillFormat(panelName));
                    var uiPanelTester       = tester.AddComponent <UIPanelTester>();
                    uiPanelTester.PanelName = panelName;

                    // 开始生成代码
                    UICodeGenerator.DoCreateCode(new[] { prefab });
                });
            }
        }