Beispiel #1
0
        protected void OnGUI()
        {
#if UNITY_5_1_OR_NEWER
            titleContent.text = "Edit Upfile";
#endif
            upfile = Upfile.Instance();

            EditorGUILayout.Space();
            scrollPosition = EditorGUILayout.BeginScrollView(scrollPosition);

            upfile.UnityVersion = EditorGUILayout.TextField("Unity version:", upfile.UnityVersion);
            EditorGUILayout.Separator();
            if (upfile.Repositories != null)
            {
                EditorGUILayout.LabelField("Repositories:", EditorStyles.boldLabel);
                EditorGUILayout.HelpBox("This sections specifies where Uplift will fetch the packages from.", MessageType.Info);
                // FIXME: Do not care about Upfile Override repositories
                upfile.Repositories = ArrayField <Repository>(
                    upfile.Repositories,
                    "Remove repository",
                    "Add another repository",
                    new FileRepository {
                    Path = "Enter a path "
                },
                    repo => RepositoryField(repo)
                    );
            }
            else
            {
                upfile.Repositories = new Repository[0];
                Repaint();
            }

            EditorGUILayout.Separator();
            if (upfile.Configuration != null)
            {
                EditorGUILayout.LabelField("Configuration:", EditorStyles.boldLabel);
                EditorGUILayout.HelpBox("This sections specifies where Uplift will install the packages into your project.", MessageType.Info);
                upfile.Configuration.RepositoryPath  = PathField("Repository path:", upfile.Configuration.RepositoryPath);
                upfile.Configuration.DocsPath        = PathField("Documentation path:", upfile.Configuration.DocsPath);
                upfile.Configuration.ExamplesPath    = PathField("Examples path:", upfile.Configuration.ExamplesPath);
                upfile.Configuration.BaseInstallPath = PathField("Base install path:", upfile.Configuration.BaseInstallPath);
                upfile.Configuration.MediaPath       = PathField("Media path:", upfile.Configuration.MediaPath);
                EditorGUILayout.Separator();
                EditorGUILayout.LabelField("Warning: the following path have special behaviours in Unity. Modify them at your own risk!");
                upfile.Configuration.GizmoPath        = PathField("Gizmo path:", upfile.Configuration.GizmoPath);
                upfile.Configuration.PluginPath       = PathField("Plugin path:", upfile.Configuration.PluginPath);
                upfile.Configuration.EditorPluginPath = PathField("Plugin path for the Editor:", upfile.Configuration.EditorPluginPath);
            }

            EditorGUILayout.Separator();
            if (upfile.Dependencies != null)
            {
                EditorGUILayout.LabelField("Dependencies:", EditorStyles.boldLabel);
                EditorGUILayout.HelpBox("This sections specifies which packages your project depends on.", MessageType.Info);
                upfile.Dependencies = ArrayField <DependencyDefinition>(
                    upfile.Dependencies,
                    "Remove dependency",
                    "Declare another dependency",
                    new DependencyDefinition
                {
                    Name    = "Enter a package name",
                    Version = "Enter a version"
                },
                    def => DependencyField(def)
                    );
            }
            else
            {
                upfile.Dependencies = new DependencyDefinition[0];
                Repaint();
            }

            EditorGUILayout.EndScrollView();

            EditorGUILayout.Separator();
            EditorGUILayout.BeginHorizontal();

            if (GUILayout.Button("Refresh Upfile"))
            {
                Upfile.InitializeInstance();
            }

            if (GUILayout.Button("Edit raw Upfile"))
            {
                EditorWindow.GetWindow(typeof(RawUpfileEditor));
            }

            if (GUILayout.Button("Save Upfile"))
            {
                upfile.SaveFile();
            }
            EditorGUILayout.EndHorizontal();
        }