protected virtual void IntegrationsTab()
 {
     GUILayout.Label("Integrations", EditorStyles.boldLabel);
     GUILayout.Label("Install & Uninstall integrations and manage them all at one glance.", EditorStyles.wordWrappedLabel);
     foreach (IntegrationInfo integration in this.integrations.Values)
     {
         EditorGUILayout.BeginVertical(EditorStyles.helpBox);
         EditorGUILayout.BeginHorizontal();
         GUILayout.Label(integration.Title, EditorStyles.boldLabel);
         EditorGUILayout.BeginVertical();
         GUILayout.Space(5f);
         if (GUILayout.Button(integration.Installed ? "Uninstall" : "Install", EditorStyles.miniButton))
         {
             if (integration.Installed)
             {
                 IntegrationUtils.UninstallIntegration(integration);
             }
             else
             {
                 IntegrationUtils.InstallIntegration(integration, true);
             }
         }
         EditorGUILayout.EndVertical();
         GUILayout.FlexibleSpace();
         EditorGUILayout.EndHorizontal();
         GUILayout.Label(integration.Description, EditorStyles.wordWrappedLabel);
         if (integration.Dependencies.Length > 0)
         {
             string   dependenciesText = "Dependencies:\n";
             string[] dependencies     = integration.Dependencies;
             for (int i = 0; i < dependencies.Length; i++)
             {
                 IntegrationInfo dependency = IntegrationUtils.GetIntegration(dependencies[i]);
                 dependenciesText += "- ";
                 dependenciesText += dependency.Title;
                 dependenciesText += " (" + (dependency.Installed ? "Installed" : "Not Installed") + ")";
                 if (i + 1 < dependencies.Length)
                 {
                     dependenciesText += "\n";
                 }
             }
             GUILayout.Label(dependenciesText, EditorStyles.wordWrappedLabel);
         }
         EditorGUILayout.BeginHorizontal();
         GUILayout.FlexibleSpace();
         if (integration.Links != null)
         {
             for (int i = 0; i < integration.Links.Length; i++)
             {
                 if (GUILayout.Button(integration.Links[i].text, GUILayout.Width(100f)))
                 {
                     Application.OpenURL(integration.Links[i].url);
                 }
             }
         }
         EditorGUILayout.EndHorizontal();
         EditorGUILayout.EndVertical();
     }
 }
Ejemplo n.º 2
0
 protected virtual void OnEnable()
 {
     titleContent      = new GUIContent(" Settings", Resources.Load <Texture>("savegamepro-icon"));
     this.integrations = new Dictionary <string, IntegrationInfo>();
     foreach (IntegrationInfo integration in IntegrationUtils.GetIntegrations())
     {
         integration.Dependents = new List <string>();
         this.integrations.Add(integration.Identifier, integration);
     }
     foreach (IntegrationInfo integration in this.integrations.Values)
     {
         for (int i = 0; i < integration.Dependencies.Length; i++)
         {
             string dependency = integration.Dependencies[i];
             this.integrations[dependency].Dependents.Add(integration.Identifier);
         }
     }
 }