Example #1
0
        private void ShowPlatformSettings()
        {
            BuildPlatform[] validPlatforms = GetBuildPlayerValidPlatforms();
            if (validPlatforms.Length > 0)
            {
                GUILayout.Label("Platform settings", EditorStyles.boldLabel);
                int platformIndex = EditorGUILayout.BeginPlatformGrouping(validPlatforms, null);

                if (validPlatforms[platformIndex].name == BuildPipeline.GetEditorTargetName())
                {
                    ShowEditorSettings();
                }
                else
                {
                    BuildTargetGroup targetGroup = validPlatforms[platformIndex].targetGroup;
                    if (targetGroup == BuildTargetGroup.Standalone)
                    {
                        desktopExtension.OnPlatformSettingsGUI(this);
                    }
                    else
                    {
                        IPluginImporterExtension extension = ModuleManager.GetPluginImporterExtension(targetGroup);
                        if (extension != null)
                        {
                            extension.OnPlatformSettingsGUI(this);
                        }
                    }
                }
                EditorGUILayout.EndPlatformGrouping();
            }
        }
Example #2
0
 internal override void ResetValues()
 {
     base.ResetValues();
     this.m_HasModified = false;
     this.ResetCompatability(ref this.m_CompatibleWithAnyPlatform, (PluginImporter imp) => imp.GetCompatibleWithAnyPlatform());
     this.ResetCompatability(ref this.m_CompatibleWithEditor, (PluginImporter imp) => imp.GetCompatibleWithEditor());
     foreach (BuildTarget platform in PluginImporterInspector.GetValidBuildTargets())
     {
         this.ResetCompatability(ref this.m_CompatibleWithPlatform[(int)platform], (PluginImporter imp) => imp.GetCompatibleWithPlatform(platform));
     }
     if (!this.IsEditingPlatformSettingsSupported())
     {
         return;
     }
     IPluginImporterExtension[] additionalExtensions = this.additionalExtensions;
     for (int i = 0; i < additionalExtensions.Length; i++)
     {
         IPluginImporterExtension pluginImporterExtension = additionalExtensions[i];
         pluginImporterExtension.ResetValues(this);
     }
     foreach (BuildTarget current in PluginImporterInspector.GetValidBuildTargets())
     {
         IPluginImporterExtension pluginImporterExtension2 = ModuleManager.GetPluginImporterExtension(current);
         if (pluginImporterExtension2 != null)
         {
             pluginImporterExtension2.ResetValues(this);
         }
     }
 }
        public static bool CheckFileCollisions(BuildTarget buildTarget)
        {
            // Checks that plugins don't collide with each other
            IPluginImporterExtension pluginImporterExtension = null;

            if (ModuleManager.IsPlatformSupported(buildTarget))
            {
                pluginImporterExtension = ModuleManager.GetPluginImporterExtension(buildTarget);
            }
            if (pluginImporterExtension == null)
            {
                // Some platforms don't have platform specific settings for plugins, but we still wan't to check that plugins don't collide, use default path in this case
                if (BuildPipeline.GetBuildTargetGroup(buildTarget) == BuildTargetGroup.Standalone)
                {
                    pluginImporterExtension = new DesktopPluginImporterExtension();
                }
                else
                {
                    pluginImporterExtension = new DefaultPluginImporterExtension(null);
                }
            }

            if (pluginImporterExtension.CheckFileCollisions(BuildPipeline.GetBuildTargetName(buildTarget)))
            {
                return(true);
            }

            return(false);
        }
Example #4
0
 private void ShowPlatformSettings()
 {
     BuildPlayerWindow.BuildPlatform[] buildPlayerValidPlatforms = this.GetBuildPlayerValidPlatforms();
     if (buildPlayerValidPlatforms.Length > 0)
     {
         GUILayout.Label("Platform settings", EditorStyles.boldLabel, new GUILayoutOption[0]);
         int num = EditorGUILayout.BeginPlatformGrouping(buildPlayerValidPlatforms, null);
         if (buildPlayerValidPlatforms[num].name == BuildPipeline.GetEditorTargetName())
         {
             this.ShowEditorSettings();
         }
         else
         {
             BuildTargetGroup targetGroup = buildPlayerValidPlatforms[num].targetGroup;
             if (targetGroup == BuildTargetGroup.Standalone)
             {
                 this.desktopExtension.OnPlatformSettingsGUI(this);
             }
             else
             {
                 IPluginImporterExtension pluginImporterExtension = ModuleManager.GetPluginImporterExtension(targetGroup);
                 if (pluginImporterExtension != null)
                 {
                     pluginImporterExtension.OnPlatformSettingsGUI(this);
                 }
             }
         }
         EditorGUILayout.EndPlatformGrouping();
     }
 }
Example #5
0
        internal override bool HasModified()
        {
            bool flag = this.m_HasModified || base.HasModified();
            bool result;

            if (!this.IsEditingPlatformSettingsSupported())
            {
                result = flag;
            }
            else
            {
                IPluginImporterExtension[] additionalExtensions = this.additionalExtensions;
                for (int i = 0; i < additionalExtensions.Length; i++)
                {
                    IPluginImporterExtension pluginImporterExtension = additionalExtensions[i];
                    flag |= pluginImporterExtension.HasModified(this);
                }
                foreach (BuildTarget current in PluginImporterInspector.GetValidBuildTargets())
                {
                    IPluginImporterExtension pluginImporterExtension2 = ModuleManager.GetPluginImporterExtension(current);
                    if (pluginImporterExtension2 != null)
                    {
                        flag |= pluginImporterExtension2.HasModified(this);
                    }
                }
                result = flag;
            }
            return(result);
        }
Example #6
0
 private void OnEnable()
 {
     if (!this.IsEditingPlatformSettingsSupported())
     {
         return;
     }
     foreach (IPluginImporterExtension additionalExtension in this.additionalExtensions)
     {
         additionalExtension.OnEnable(this);
     }
     using (List <BuildTarget> .Enumerator enumerator = PluginImporterInspector.GetValidBuildTargets().GetEnumerator())
     {
         while (enumerator.MoveNext())
         {
             IPluginImporterExtension importerExtension = ModuleManager.GetPluginImporterExtension(enumerator.Current);
             if (importerExtension != null)
             {
                 importerExtension.OnEnable(this);
                 importerExtension.ResetValues(this);
             }
         }
     }
     this.m_PluginInformation         = new Dictionary <string, string>();
     this.m_PluginInformation["Path"] = this.importer.assetPath;
     this.m_PluginInformation["Type"] = !this.importer.isNativePlugin ? "Managed" : "Native";
 }
Example #7
0
        private void ShowPlatformSettings()
        {
            BuildPlayerWindow.BuildPlatform[] playerValidPlatforms = this.GetBuildPlayerValidPlatforms();
            if (playerValidPlatforms.Length <= 0)
            {
                return;
            }
            GUILayout.Label("Platform settings", EditorStyles.boldLabel, new GUILayoutOption[0]);
            int index = EditorGUILayout.BeginPlatformGrouping(playerValidPlatforms, (GUIContent)null);

            if (playerValidPlatforms[index].name == BuildPipeline.GetEditorTargetName())
            {
                this.ShowEditorSettings();
            }
            else
            {
                BuildTargetGroup targetGroup = playerValidPlatforms[index].targetGroup;
                if (targetGroup == BuildTargetGroup.Standalone)
                {
                    this.m_DesktopExtension.OnPlatformSettingsGUI(this);
                }
                else
                {
                    IPluginImporterExtension importerExtension = ModuleManager.GetPluginImporterExtension(targetGroup);
                    if (importerExtension != null)
                    {
                        importerExtension.OnPlatformSettingsGUI(this);
                    }
                }
            }
            EditorGUILayout.EndPlatformGrouping();
        }
Example #8
0
        internal override bool HasModified()
        {
            bool flag = this.m_HasModified || base.HasModified();

            if (!this.IsEditingPlatformSettingsSupported())
            {
                return(flag);
            }
            foreach (IPluginImporterExtension additionalExtension in this.additionalExtensions)
            {
                flag |= additionalExtension.HasModified(this);
            }
            using (List <BuildTarget> .Enumerator enumerator = PluginImporterInspector.GetValidBuildTargets().GetEnumerator())
            {
                while (enumerator.MoveNext())
                {
                    IPluginImporterExtension importerExtension = ModuleManager.GetPluginImporterExtension(enumerator.Current);
                    if (importerExtension != null)
                    {
                        flag |= importerExtension.HasModified(this);
                    }
                }
            }
            return(flag);
        }
        public override void OnEnable()
        {
            base.OnEnable();

            m_DefineConstraints = new ReorderableList(m_DefineConstraintState, typeof(DefineConstraint), false, false, true, true);
            m_DefineConstraints.drawElementCallback = DrawDefineConstraintListElement;
            m_DefineConstraints.onRemoveCallback    = RemoveDefineConstraintListElement;

            m_DefineConstraints.elementHeight = EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
            m_DefineConstraints.headerHeight  = 3;

            if (!IsEditingPlatformSettingsSupported())
            {
                return;
            }

            foreach (var extension in additionalExtensions)
            {
                extension.OnEnable(this);
            }

            foreach (BuildTarget platform in GetValidBuildTargets())
            {
                IPluginImporterExtension extension = ModuleManager.GetPluginImporterExtension(platform);
                if (extension != null)
                {
                    extension.OnEnable(this);
                    extension.ResetValues(this);
                }
            }

            m_PluginInformation         = new Dictionary <string, string>();
            m_PluginInformation["Path"] = importer.assetPath;
            m_PluginInformation["Type"] = importer.isNativePlugin ? "Native" : "Managed";
            if (!importer.isNativePlugin)
            {
                string info;
                switch (importer.dllType)
                {
                case DllType.ManagedNET35: info = "Targets .NET 3.5"; break;

                case DllType.ManagedNET40: info = "Targets .NET 4.x"; break;

                case DllType.UnknownManaged: info = "Targets Unknown .NET"; break;

                case DllType.WinMDNET40: info = "Managed WinMD"; break;

                case DllType.WinMDNative: info = "Native WinMD"; break;

                default:
                    throw new Exception("Unknown managed dll type: " + importer.dllType.ToString());
                }

                m_PluginInformation["Assembly Info"] = info;
            }

            m_ReferencesUnityEngineModule = importer.HasDiscouragedReferences();

            ResetCompatability(ref m_Preload, (imp => imp.isPreloaded));
        }
Example #10
0
        public override bool HasModified()
        {
            bool modified = m_HasModified || base.HasModified();

            if (!IsEditingPlatformSettingsSupported())
            {
                return(modified);
            }

            foreach (var extension in additionalExtensions)
            {
                modified |= extension.HasModified(this);
            }

            foreach (BuildTarget platform in GetValidBuildTargets())
            {
                IPluginImporterExtension extension = ModuleManager.GetPluginImporterExtension(platform);
                if (extension != null)
                {
                    modified |= extension.HasModified(this);
                }
            }

            return(modified);
        }
Example #11
0
 private void OnEnable()
 {
     if (!this.IsEditingPlatformSettingsSupported())
     {
         return;
     }
     IPluginImporterExtension[] additionalExtensions = this.additionalExtensions;
     for (int i = 0; i < additionalExtensions.Length; i++)
     {
         IPluginImporterExtension pluginImporterExtension = additionalExtensions[i];
         pluginImporterExtension.OnEnable(this);
     }
     foreach (BuildTarget current in PluginImporterInspector.GetValidBuildTargets())
     {
         IPluginImporterExtension pluginImporterExtension2 = ModuleManager.GetPluginImporterExtension(current);
         if (pluginImporterExtension2 != null)
         {
             pluginImporterExtension2.OnEnable(this);
             pluginImporterExtension2.ResetValues(this);
         }
     }
     this.m_PluginInformation         = new Dictionary <string, string>();
     this.m_PluginInformation["Path"] = this.importer.assetPath;
     this.m_PluginInformation["Type"] = ((!this.importer.isNativePlugin) ? "Managed" : "Native");
 }
Example #12
0
        public static PluginImporter[] GetImporters(string platformName)
        {
            // The final list of importers that will be returned
            List <PluginImporter> finalImporters = new List <PluginImporter>();

            // Contains all unique finalPaths. Used to remove overridable plugins from the finalImporters list
            Dictionary <string, PluginImporter> uniqueFinalPathToImporterMap = new Dictionary <string, PluginImporter>();

            PluginImporter[]         allImporters            = GetAllImporters().Where(imp => imp.GetCompatibleWithPlatformOrAnyPlatformBuildTarget(platformName)).ToArray();
            IPluginImporterExtension pluginImporterExtension = ModuleManager.GetPluginImporterExtension(platformName);

            if (pluginImporterExtension == null)
            {
                pluginImporterExtension = ModuleManager.GetPluginImporterExtension(BuildPipeline.GetBuildTargetByName(platformName));
            }

            if (pluginImporterExtension == null)
            {
                return(allImporters);
            }

            // Go through all of the Importers for the specified platform and determine if any of the natively included Unity Plugins should be removed.
            // Removal should only happen if the user has included a plugin of the same name and they are copying to the same finalPath
            for (int i = 0; i < allImporters.Length; ++i)
            {
                PluginImporter currentImporter = allImporters[i];
                string         finalPluginPath = pluginImporterExtension.CalculateFinalPluginPath(platformName, currentImporter);

                // Only compare overridables if the plugin has a calculated finalPluginPath
                if (!string.IsNullOrEmpty(finalPluginPath))
                {
                    PluginImporter tempImporter;
                    if (!uniqueFinalPathToImporterMap.TryGetValue(finalPluginPath, out tempImporter))
                    {
                        // Unique Plugin found, add it to the list for comparing overridable plugins
                        // The first overridable plugin of it's kind should be added to the return list here.
                        uniqueFinalPathToImporterMap.Add(finalPluginPath, currentImporter);
                    }
                    else if (tempImporter.GetIsOverridable() && !currentImporter.GetIsOverridable())
                    {
                        // finalPluginPath isn't unique and the finalImporter already in the list is overriden by the new one,
                        // remove the overridable one.
                        uniqueFinalPathToImporterMap[finalPluginPath] = currentImporter;
                        finalImporters.Remove(tempImporter);
                    }
                    else if (currentImporter.GetIsOverridable())
                    {
                        // The current importer is going to the same final location as another, but
                        // this plugin is overridable, so don't include it.
                        continue;
                    }
                }

                finalImporters.Add(currentImporter);
            }

            return(finalImporters.ToArray());
        }
Example #13
0
        public static PluginImporter[] GetImporters(string platformName)
        {
            List <PluginImporter> list = new List <PluginImporter>();
            Dictionary <string, PluginImporter> dictionary = new Dictionary <string, PluginImporter>();

            PluginImporter[] array = (from imp in PluginImporter.GetAllImporters()
                                      where PluginImporter.IsCompatible(imp, platformName)
                                      select imp).ToArray <PluginImporter>();
            IPluginImporterExtension pluginImporterExtension = ModuleManager.GetPluginImporterExtension(platformName);

            if (pluginImporterExtension == null)
            {
                pluginImporterExtension = ModuleManager.GetPluginImporterExtension(BuildPipeline.GetBuildTargetByName(platformName));
            }
            PluginImporter[] result;
            if (pluginImporterExtension == null)
            {
                result = array;
            }
            else
            {
                int i = 0;
                while (i < array.Length)
                {
                    PluginImporter pluginImporter = array[i];
                    string         text           = pluginImporterExtension.CalculateFinalPluginPath(platformName, pluginImporter);
                    if (!string.IsNullOrEmpty(text))
                    {
                        PluginImporter pluginImporter2;
                        if (!dictionary.TryGetValue(text, out pluginImporter2))
                        {
                            dictionary.Add(text, pluginImporter);
                        }
                        else if (pluginImporter2.GetIsOverridable() && !pluginImporter.GetIsOverridable())
                        {
                            dictionary[text] = pluginImporter;
                            list.Remove(pluginImporter2);
                        }
                        else if (pluginImporter.GetIsOverridable())
                        {
                            goto IL_106;
                        }
                        goto IL_FD;
                    }
                    goto IL_FD;
IL_106:
                    i++;
                    continue;
IL_FD:
                    list.Add(pluginImporter);
                    goto IL_106;
                }
                result = list.ToArray();
            }
            return(result);
        }
        public static bool CheckFileCollisions(BuildTarget buildTarget)
        {
            IPluginImporterExtension pluginImporterExtension = null;

            if (ModuleManager.IsPlatformSupported(buildTarget))
            {
                pluginImporterExtension = ModuleManager.GetPluginImporterExtension(buildTarget);
            }
            return(pluginImporterExtension?.CheckFileCollisions(BuildPipeline.GetBuildTargetName(buildTarget)));
        }
        protected override void Apply()
        {
            base.Apply();
            foreach (var imp in importers)
            {
                if (m_CompatibleWithAnyPlatform > Compatibility.Mixed)
                {
                    imp.SetCompatibleWithAnyPlatform(m_CompatibleWithAnyPlatform == Compatibility.Compatible);
                }
                if (m_CompatibleWithEditor > Compatibility.Mixed)
                {
                    imp.SetCompatibleWithEditor(m_CompatibleWithEditor == Compatibility.Compatible);
                }

                foreach (BuildTarget platform in GetValidBuildTargets())
                {
                    if (m_CompatibleWithPlatform[(int)platform] > Compatibility.Mixed)
                    {
                        imp.SetCompatibleWithPlatform(platform, m_CompatibleWithPlatform[(int)platform] == Compatibility.Compatible);
                    }
                }

                if (m_CompatibleWithEditor > Compatibility.Mixed)
                {
                    imp.SetExcludeEditorFromAnyPlatform(m_CompatibleWithEditor == Compatibility.NotCompatible);
                }

                foreach (BuildTarget platform in GetValidBuildTargets())
                {
                    if (m_CompatibleWithPlatform[(int)platform] > Compatibility.Mixed)
                    {
                        imp.SetExcludeFromAnyPlatform(platform, m_CompatibleWithPlatform[(int)platform] == Compatibility.NotCompatible);
                    }
                }
            }

            if (!IsEditingPlatformSettingsSupported())
            {
                return;
            }

            foreach (var extension in additionalExtensions)
            {
                extension.Apply(this);
            }

            foreach (BuildTarget platform in GetValidBuildTargets())
            {
                IPluginImporterExtension extension = ModuleManager.GetPluginImporterExtension(platform);
                if (extension != null)
                {
                    extension.Apply(this);
                }
            }
        }
Example #16
0
        public override void OnEnable()
        {
            if (this.IsEditingPlatformSettingsSupported())
            {
                IPluginImporterExtension[] additionalExtensions = this.additionalExtensions;
                for (int i = 0; i < additionalExtensions.Length; i++)
                {
                    IPluginImporterExtension pluginImporterExtension = additionalExtensions[i];
                    pluginImporterExtension.OnEnable(this);
                }
                foreach (BuildTarget current in PluginImporterInspector.GetValidBuildTargets())
                {
                    IPluginImporterExtension pluginImporterExtension2 = ModuleManager.GetPluginImporterExtension(current);
                    if (pluginImporterExtension2 != null)
                    {
                        pluginImporterExtension2.OnEnable(this);
                        pluginImporterExtension2.ResetValues(this);
                    }
                }
                this.m_PluginInformation         = new Dictionary <string, string>();
                this.m_PluginInformation["Path"] = this.importer.assetPath;
                this.m_PluginInformation["Type"] = ((!this.importer.isNativePlugin) ? "Managed" : "Native");
                if (!this.importer.isNativePlugin)
                {
                    string value;
                    switch (this.importer.dllType)
                    {
                    case DllType.UnknownManaged:
                        value = "Targets Unknown .NET";
                        break;

                    case DllType.ManagedNET35:
                        value = "Targets .NET 3.5";
                        break;

                    case DllType.ManagedNET40:
                        value = "Targets .NET 4.x";
                        break;

                    case DllType.WinMDNative:
                        value = "Native WinMD";
                        break;

                    case DllType.WinMDNET40:
                        value = "Managed WinMD";
                        break;

                    default:
                        throw new Exception("Unknown managed dll type: " + this.importer.dllType.ToString());
                    }
                    this.m_PluginInformation["Assembly Info"] = value;
                }
                this.m_ReferencesUnityEngineModule = this.importer.HasDiscouragedReferences();
            }
        }
Example #17
0
 internal override void Apply()
 {
     base.Apply();
     PluginImporter[] importers = this.importers;
     for (int i = 0; i < importers.Length; i++)
     {
         PluginImporter pluginImporter = importers[i];
         if (this.m_CompatibleWithAnyPlatform > PluginImporterInspector.Compatibility.Mixed)
         {
             pluginImporter.SetCompatibleWithAnyPlatform(this.m_CompatibleWithAnyPlatform == PluginImporterInspector.Compatibility.Compatible);
         }
         if (this.m_CompatibleWithEditor > PluginImporterInspector.Compatibility.Mixed)
         {
             pluginImporter.SetCompatibleWithEditor(this.m_CompatibleWithEditor == PluginImporterInspector.Compatibility.Compatible);
         }
         foreach (BuildTarget current in PluginImporterInspector.GetValidBuildTargets())
         {
             if (this.m_CompatibleWithPlatform[(int)current] > PluginImporterInspector.Compatibility.Mixed)
             {
                 pluginImporter.SetCompatibleWithPlatform(current, this.m_CompatibleWithPlatform[(int)current] == PluginImporterInspector.Compatibility.Compatible);
             }
         }
         if (this.m_CompatibleWithEditor > PluginImporterInspector.Compatibility.Mixed)
         {
             pluginImporter.SetExcludeEditorFromAnyPlatform(this.m_CompatibleWithEditor == PluginImporterInspector.Compatibility.NotCompatible);
         }
         foreach (BuildTarget current2 in PluginImporterInspector.GetValidBuildTargets())
         {
             if (this.m_CompatibleWithPlatform[(int)current2] > PluginImporterInspector.Compatibility.Mixed)
             {
                 pluginImporter.SetExcludeFromAnyPlatform(current2, this.m_CompatibleWithPlatform[(int)current2] == PluginImporterInspector.Compatibility.NotCompatible);
             }
         }
     }
     if (this.IsEditingPlatformSettingsSupported())
     {
         IPluginImporterExtension[] additionalExtensions = this.additionalExtensions;
         for (int j = 0; j < additionalExtensions.Length; j++)
         {
             IPluginImporterExtension pluginImporterExtension = additionalExtensions[j];
             pluginImporterExtension.Apply(this);
         }
         foreach (BuildTarget current3 in PluginImporterInspector.GetValidBuildTargets())
         {
             IPluginImporterExtension pluginImporterExtension2 = ModuleManager.GetPluginImporterExtension(current3);
             if (pluginImporterExtension2 != null)
             {
                 pluginImporterExtension2.Apply(this);
             }
         }
     }
 }
Example #18
0
        private void OnEnable()
        {
            if (this.IsEditingPlatformSettingsSupported())
            {
                foreach (IPluginImporterExtension extension in this.additionalExtensions)
                {
                    extension.OnEnable(this);
                }
                foreach (BuildTarget target in GetValidBuildTargets())
                {
                    IPluginImporterExtension pluginImporterExtension = ModuleManager.GetPluginImporterExtension(target);
                    if (pluginImporterExtension != null)
                    {
                        pluginImporterExtension.OnEnable(this);
                        pluginImporterExtension.ResetValues(this);
                    }
                }
                this.m_PluginInformation         = new Dictionary <string, string>();
                this.m_PluginInformation["Path"] = this.importer.assetPath;
                this.m_PluginInformation["Type"] = !this.importer.isNativePlugin ? "Managed" : "Native";
                if (!this.importer.isNativePlugin)
                {
                    string str;
                    switch (this.importer.dllType)
                    {
                    case DllType.UnknownManaged:
                        str = "Targets Unknown .NET";
                        break;

                    case DllType.ManagedNET35:
                        str = "Targets .NET 3.5";
                        break;

                    case DllType.ManagedNET40:
                        str = "Targets .NET 4.x";
                        break;

                    case DllType.WinMDNative:
                        str = "Native WinMD";
                        break;

                    case DllType.WinMDNET40:
                        str = "Managed WinMD";
                        break;

                    default:
                        throw new Exception("Unknown managed dll type: " + this.importer.dllType.ToString());
                    }
                    this.m_PluginInformation["Assembly Info"] = str;
                }
            }
        }
Example #19
0
        public static bool CheckFileCollisions(BuildTarget buildTarget)
        {
            IPluginImporterExtension importerExtension = (IPluginImporterExtension)null;

            if (ModuleManager.IsPlatformSupported(buildTarget))
            {
                importerExtension = ModuleManager.GetPluginImporterExtension(buildTarget);
            }
            if (importerExtension == null)
            {
                importerExtension = BuildPipeline.GetBuildTargetGroup(buildTarget) != BuildTargetGroup.Standalone ? (IPluginImporterExtension) new DefaultPluginImporterExtension((DefaultPluginImporterExtension.Property[])null) : (IPluginImporterExtension) new DesktopPluginImporterExtension();
            }
            return(importerExtension.CheckFileCollisions(BuildPipeline.GetBuildTargetName(buildTarget)));
        }
        public override void OnEnable()
        {
            if (!IsEditingPlatformSettingsSupported())
            {
                return;
            }

            foreach (var extension in additionalExtensions)
            {
                extension.OnEnable(this);
            }

            foreach (BuildTarget platform in GetValidBuildTargets())
            {
                IPluginImporterExtension extension = ModuleManager.GetPluginImporterExtension(platform);
                if (extension != null)
                {
                    extension.OnEnable(this);
                    extension.ResetValues(this);
                }
            }

            m_PluginInformation         = new Dictionary <string, string>();
            m_PluginInformation["Path"] = importer.assetPath;
            m_PluginInformation["Type"] = importer.isNativePlugin ? "Native" : "Managed";
            if (!importer.isNativePlugin)
            {
                string info;
                switch (importer.dllType)
                {
                case DllType.ManagedNET35: info = "Targets .NET 3.5"; break;

                case DllType.ManagedNET40: info = "Targets .NET 4.x"; break;

                case DllType.UnknownManaged: info = "Targets Unknown .NET"; break;

                case DllType.WinMDNET40: info = "Managed WinMD"; break;

                case DllType.WinMDNative: info = "Native WinMD"; break;

                default:
                    throw new Exception("Unknown managed dll type: " + importer.dllType.ToString());
                }

                m_PluginInformation["Assembly Info"] = info;
            }

            m_ReferencesUnityEngineModule = importer.HasDiscouragedReferences();
        }
        protected override void ResetValues()
        {
            base.ResetValues();

            m_HasModified = false;

            ResetCompatability(ref m_CompatibleWithAnyPlatform, (imp => { return(imp.GetCompatibleWithAnyPlatform()); }));
            ResetCompatability(ref m_CompatibleWithEditor, (imp => { return(imp.GetCompatibleWithEditor()); }));
            // If Any Platform is selected, initialize m_Compatible* variables using compatability function
            // If Any Platform is unselected, initialize m_Compatible* variables using exclude function
            // This gives correct initialization in case when plugin is imported for the first time, and only "Any Platform" is selected
            if (m_CompatibleWithAnyPlatform < Compatibility.Compatible)
            {
                ResetCompatability(ref m_CompatibleWithEditor, (imp => { return(imp.GetCompatibleWithEditor("", "")); }));

                foreach (BuildTarget platform in GetValidBuildTargets())
                {
                    ResetCompatability(ref m_CompatibleWithPlatform[(int)platform], (imp => { return(imp.GetCompatibleWithPlatform(platform)); }));
                }
            }
            else
            {
                ResetCompatability(ref m_CompatibleWithEditor, (imp => { return(!imp.GetExcludeEditorFromAnyPlatform()); }));

                foreach (BuildTarget platform in GetValidBuildTargets())
                {
                    ResetCompatability(ref m_CompatibleWithPlatform[(int)platform], (imp => { return(!imp.GetExcludeFromAnyPlatform(platform)); }));
                }
            }

            if (!IsEditingPlatformSettingsSupported())
            {
                return;
            }

            foreach (var extension in additionalExtensions)
            {
                extension.ResetValues(this);
            }

            foreach (BuildTarget platform in GetValidBuildTargets())
            {
                IPluginImporterExtension extension = ModuleManager.GetPluginImporterExtension(platform);
                if (extension != null)
                {
                    extension.ResetValues(this);
                }
            }
        }
Example #22
0
 internal override void ResetValues()
 {
     base.ResetValues();
     this.m_HasModified = false;
     this.ResetCompatability(ref this.m_CompatibleWithAnyPlatform, (PluginImporter imp) => imp.GetCompatibleWithAnyPlatform());
     this.ResetCompatability(ref this.m_CompatibleWithEditor, (PluginImporter imp) => imp.GetCompatibleWithEditor());
     if (this.m_CompatibleWithAnyPlatform < PluginImporterInspector.Compatibility.Compatible)
     {
         this.ResetCompatability(ref this.m_CompatibleWithEditor, (PluginImporter imp) => imp.GetCompatibleWithEditor("", ""));
         using (List <BuildTarget> .Enumerator enumerator = PluginImporterInspector.GetValidBuildTargets().GetEnumerator())
         {
             while (enumerator.MoveNext())
             {
                 BuildTarget platform = enumerator.Current;
                 this.ResetCompatability(ref this.m_CompatibleWithPlatform[(int)platform], (PluginImporter imp) => imp.GetCompatibleWithPlatform(platform));
             }
         }
     }
     else
     {
         this.ResetCompatability(ref this.m_CompatibleWithEditor, (PluginImporter imp) => !imp.GetExcludeEditorFromAnyPlatform());
         using (List <BuildTarget> .Enumerator enumerator2 = PluginImporterInspector.GetValidBuildTargets().GetEnumerator())
         {
             while (enumerator2.MoveNext())
             {
                 BuildTarget platform = enumerator2.Current;
                 this.ResetCompatability(ref this.m_CompatibleWithPlatform[(int)platform], (PluginImporter imp) => !imp.GetExcludeFromAnyPlatform(platform));
             }
         }
     }
     if (this.IsEditingPlatformSettingsSupported())
     {
         IPluginImporterExtension[] additionalExtensions = this.additionalExtensions;
         for (int i = 0; i < additionalExtensions.Length; i++)
         {
             IPluginImporterExtension pluginImporterExtension = additionalExtensions[i];
             pluginImporterExtension.ResetValues(this);
         }
         foreach (BuildTarget current in PluginImporterInspector.GetValidBuildTargets())
         {
             IPluginImporterExtension pluginImporterExtension2 = ModuleManager.GetPluginImporterExtension(current);
             if (pluginImporterExtension2 != null)
             {
                 pluginImporterExtension2.ResetValues(this);
             }
         }
     }
 }
Example #23
0
 internal override void Apply()
 {
     base.Apply();
     foreach (PluginImporter importer in this.importers)
     {
         if (this.m_CompatibleWithAnyPlatform > Compatibility.Mixed)
         {
             importer.SetCompatibleWithAnyPlatform(this.m_CompatibleWithAnyPlatform == Compatibility.Compatible);
         }
         if (this.m_CompatibleWithEditor > Compatibility.Mixed)
         {
             importer.SetCompatibleWithEditor(this.m_CompatibleWithEditor == Compatibility.Compatible);
         }
         foreach (BuildTarget target in GetValidBuildTargets())
         {
             if (this.m_CompatibleWithPlatform[(int)target] > Compatibility.Mixed)
             {
                 importer.SetCompatibleWithPlatform(target, this.m_CompatibleWithPlatform[(int)target] == Compatibility.Compatible);
             }
         }
         if (this.m_CompatibleWithEditor > Compatibility.Mixed)
         {
             importer.SetExcludeEditorFromAnyPlatform(this.m_CompatibleWithEditor == Compatibility.NotCompatible);
         }
         foreach (BuildTarget target2 in GetValidBuildTargets())
         {
             if (this.m_CompatibleWithPlatform[(int)target2] > Compatibility.Mixed)
             {
                 importer.SetExcludeFromAnyPlatform(target2, this.m_CompatibleWithPlatform[(int)target2] == Compatibility.NotCompatible);
             }
         }
     }
     if (this.IsEditingPlatformSettingsSupported())
     {
         foreach (IPluginImporterExtension extension in this.additionalExtensions)
         {
             extension.Apply(this);
         }
         foreach (BuildTarget target3 in GetValidBuildTargets())
         {
             IPluginImporterExtension pluginImporterExtension = ModuleManager.GetPluginImporterExtension(target3);
             if (pluginImporterExtension != null)
             {
                 pluginImporterExtension.Apply(this);
             }
         }
     }
 }
Example #24
0
 internal override void Apply()
 {
     base.Apply();
     foreach (PluginImporter importer in this.importers)
     {
         if (this.m_CompatibleWithAnyPlatform > -1)
         {
             importer.SetCompatibleWithAnyPlatform(this.m_CompatibleWithAnyPlatform == 1);
         }
         if (this.m_CompatibleWithEditor > -1)
         {
             importer.SetCompatibleWithEditor(this.m_CompatibleWithEditor == 1);
         }
         using (List <BuildTarget> .Enumerator enumerator = PluginImporterInspector.GetValidBuildTargets().GetEnumerator())
         {
             while (enumerator.MoveNext())
             {
                 BuildTarget current = enumerator.Current;
                 if (this.m_CompatibleWithPlatform[(int)current] > -1)
                 {
                     importer.SetCompatibleWithPlatform(current, this.m_CompatibleWithPlatform[(int)current] == 1);
                 }
             }
         }
     }
     if (!this.IsEditingPlatformSettingsSupported())
     {
         return;
     }
     foreach (IPluginImporterExtension additionalExtension in this.additionalExtensions)
     {
         additionalExtension.Apply(this);
     }
     using (List <BuildTarget> .Enumerator enumerator = PluginImporterInspector.GetValidBuildTargets().GetEnumerator())
     {
         while (enumerator.MoveNext())
         {
             IPluginImporterExtension importerExtension = ModuleManager.GetPluginImporterExtension(enumerator.Current);
             if (importerExtension != null)
             {
                 importerExtension.Apply(this);
             }
         }
     }
 }
Example #25
0
 private new void OnDisable()
 {
     base.OnDisable();
     IPluginImporterExtension[] additionalExtensions = this.additionalExtensions;
     for (int i = 0; i < additionalExtensions.Length; i++)
     {
         IPluginImporterExtension pluginImporterExtension = additionalExtensions[i];
         pluginImporterExtension.OnDisable(this);
     }
     foreach (BuildTarget current in PluginImporterInspector.GetValidBuildTargets())
     {
         IPluginImporterExtension pluginImporterExtension2 = ModuleManager.GetPluginImporterExtension(current);
         if (pluginImporterExtension2 != null)
         {
             pluginImporterExtension2.OnDisable(this);
         }
     }
 }
Example #26
0
        private BuildPlatform[] GetBuildPlayerValidPlatforms()
        {
            List <BuildPlatform> validPlatforms = BuildPlatforms.instance.GetValidPlatforms();
            List <BuildPlatform> filtered       = new List <BuildPlatform>();

            if (m_CompatibleWithEditor > Compatibility.NotCompatible)
            {
                BuildPlatform editorPlatform = new BuildPlatform("Editor settings", "Editor Settings", "BuildSettings.Editor", BuildTargetGroup.Unknown, BuildTarget.NoTarget, true);
                editorPlatform.name = BuildPipeline.GetEditorTargetName();
                filtered.Add(editorPlatform);
            }
            foreach (BuildPlatform bp in validPlatforms)
            {
                if (IgnorePlatform(bp.defaultTarget))
                {
                    continue;
                }

                if (bp.targetGroup == BuildTargetGroup.Standalone)
                {
                    if (compatibleWithStandalone < Compatibility.Compatible)
                    {
                        continue;
                    }
                }
                else
                {
                    if (m_CompatibleWithPlatform[(int)bp.defaultTarget] < Compatibility.Compatible)
                    {
                        continue;
                    }

                    IPluginImporterExtension extension = ModuleManager.GetPluginImporterExtension(bp.targetGroup);
                    if (extension == null)
                    {
                        continue;
                    }
                }

                filtered.Add(bp);
            }

            return(filtered.ToArray());
        }
 private void OnDisable()
 {
     base.OnDisable();
     if (this.IsEditingPlatformSettingsSupported())
     {
         foreach (IPluginImporterExtension extension in this.additionalExtensions)
         {
             extension.OnDisable(this);
         }
         foreach (BuildTarget target in GetValidBuildTargets())
         {
             IPluginImporterExtension pluginImporterExtension = ModuleManager.GetPluginImporterExtension(target);
             if (pluginImporterExtension != null)
             {
                 pluginImporterExtension.OnDisable(this);
             }
         }
     }
 }
Example #28
0
        internal override bool HasModified()
        {
            bool flag = this.hasModified || base.HasModified();

            IPluginImporterExtension[] additionalExtensions = this.additionalExtensions;
            for (int i = 0; i < additionalExtensions.Length; i++)
            {
                IPluginImporterExtension pluginImporterExtension = additionalExtensions[i];
                flag |= pluginImporterExtension.HasModified(this);
            }
            foreach (BuildTarget current in PluginImporterInspector.GetValidBuildTargets())
            {
                IPluginImporterExtension pluginImporterExtension2 = ModuleManager.GetPluginImporterExtension(current);
                if (pluginImporterExtension2 != null)
                {
                    flag |= pluginImporterExtension2.HasModified(this);
                }
            }
            return(flag);
        }
        internal override bool HasModified()
        {
            bool flag = this.m_HasModified || base.HasModified();

            if (this.IsEditingPlatformSettingsSupported())
            {
                foreach (IPluginImporterExtension extension in this.additionalExtensions)
                {
                    flag |= extension.HasModified(this);
                }
                foreach (BuildTarget target in GetValidBuildTargets())
                {
                    IPluginImporterExtension pluginImporterExtension = ModuleManager.GetPluginImporterExtension(target);
                    if (pluginImporterExtension != null)
                    {
                        flag |= pluginImporterExtension.HasModified(this);
                    }
                }
            }
            return(flag);
        }
Example #30
0
        public static bool CheckFileCollisions(BuildTarget buildTarget)
        {
            IPluginImporterExtension pluginImporterExtension = null;

            if (ModuleManager.IsPlatformSupported(buildTarget))
            {
                pluginImporterExtension = ModuleManager.GetPluginImporterExtension(buildTarget);
            }
            if (pluginImporterExtension == null)
            {
                if (BuildPipeline.GetBuildTargetGroup(buildTarget) == BuildTargetGroup.Standalone)
                {
                    pluginImporterExtension = new DesktopPluginImporterExtension();
                }
                else
                {
                    pluginImporterExtension = new DefaultPluginImporterExtension(null);
                }
            }
            return(pluginImporterExtension.CheckFileCollisions(BuildPipeline.GetBuildTargetName(buildTarget)));
        }