internal bool IsTargetEnabled(PluginImporterInspector inspector) { PluginImporterInspector.Compatibility platformCompatibility = inspector.GetPlatformCompatibility(base.platformName); if (platformCompatibility == PluginImporterInspector.Compatibility.Mixed) { throw new Exception("Unexpected mixed value for '" + inspector.importer.assetPath + "', platform: " + base.platformName); } return(platformCompatibility == PluginImporterInspector.Compatibility.Compatible); }
private void ResetCompatability(ref PluginImporterInspector.Compatibility value, PluginImporterInspector.GetComptability getComptability) { value = ((!getComptability(this.importer)) ? PluginImporterInspector.Compatibility.NotCompatible : PluginImporterInspector.Compatibility.Compatible); PluginImporter[] importers = this.importers; for (int i = 0; i < importers.Length; i++) { PluginImporter imp = importers[i]; if (value != ((!getComptability(imp)) ? PluginImporterInspector.Compatibility.NotCompatible : PluginImporterInspector.Compatibility.Compatible)) { value = PluginImporterInspector.Compatibility.Mixed; break; } } }
internal void SetPlatformCompatibility(string platformName, PluginImporterInspector.Compatibility compatibility) { if (compatibility == PluginImporterInspector.Compatibility.Mixed) { throw new ArgumentException("compatibility value cannot be Mixed"); } int buildTargetByName = (int)BuildPipeline.GetBuildTargetByName(platformName); if (this.m_CompatibleWithPlatform[buildTargetByName] != compatibility) { this.m_CompatibleWithPlatform[buildTargetByName] = compatibility; this.m_HasModified = true; } }
internal bool IsTargetEnabled(PluginImporterInspector inspector) { PluginImporterInspector.Compatibility compatibililty = inspector.GetPlatformCompatibility(platformName); if (compatibililty == PluginImporterInspector.Compatibility.Mixed) { throw new Exception("Unexpected mixed value for '" + inspector.importer.assetPath + "', platform: " + platformName); } if (compatibililty != PluginImporterInspector.Compatibility.Compatible) { return(false); } var pluginCPU = value as DesktopPluginCPUArchitecture ? ?? DesktopPluginCPUArchitecture.None; return(pluginCPU == (DesktopPluginCPUArchitecture)defaultValue || pluginCPU == DesktopPluginCPUArchitecture.AnyCPU); }
private PluginImporterInspector.Compatibility ToggleWithMixedValue(PluginImporterInspector.Compatibility value, string title) { EditorGUI.showMixedValue = (value == PluginImporterInspector.Compatibility.Mixed); EditorGUI.BeginChangeCheck(); bool flag = EditorGUILayout.Toggle(title, value == PluginImporterInspector.Compatibility.Compatible, new GUILayoutOption[0]); PluginImporterInspector.Compatibility result; if (EditorGUI.EndChangeCheck()) { result = ((!flag) ? PluginImporterInspector.Compatibility.NotCompatible : PluginImporterInspector.Compatibility.Compatible); } else { EditorGUI.showMixedValue = false; result = value; } return(result); }
private void ShowGeneralOptions() { EditorGUI.BeginChangeCheck(); this.m_CompatibleWithAnyPlatform = this.ToggleWithMixedValue(this.m_CompatibleWithAnyPlatform, "Any Platform"); if (this.m_CompatibleWithAnyPlatform == PluginImporterInspector.Compatibility.Compatible) { GUILayout.Label("Exclude Platforms", EditorStyles.boldLabel, new GUILayoutOption[0]); this.ShowPlatforms(new PluginImporterInspector.ValueSwitcher(this.SwitchToExclude)); } else if (this.m_CompatibleWithAnyPlatform == PluginImporterInspector.Compatibility.NotCompatible) { GUILayout.Label("Include Platforms", EditorStyles.boldLabel, new GUILayoutOption[0]); this.ShowPlatforms(new PluginImporterInspector.ValueSwitcher(this.SwitchToInclude)); } if (EditorGUI.EndChangeCheck()) { this.m_HasModified = true; } }
private void ShowPlatforms(PluginImporterInspector.ValueSwitcher switcher) { this.m_CompatibleWithEditor = switcher(this.ToggleWithMixedValue(switcher(this.m_CompatibleWithEditor), "Editor")); EditorGUI.BeginChangeCheck(); PluginImporterInspector.Compatibility value = this.ToggleWithMixedValue(switcher(this.compatibleWithStandalone), "Standalone"); if (EditorGUI.EndChangeCheck()) { this.compatibleWithStandalone = switcher(value); if (this.compatibleWithStandalone != PluginImporterInspector.Compatibility.Mixed) { this.desktopExtension.ValidateSingleCPUTargets(this); } } foreach (BuildTarget current in PluginImporterInspector.GetValidBuildTargets()) { if (!PluginImporterInspector.IsStandaloneTarget(current)) { this.m_CompatibleWithPlatform[(int)current] = switcher(this.ToggleWithMixedValue(switcher(this.m_CompatibleWithPlatform[(int)current]), current.ToString())); } } }
private PluginImporterInspector.Compatibility SwitchToExclude(PluginImporterInspector.Compatibility value) { PluginImporterInspector.Compatibility result; switch (value + 1) { case PluginImporterInspector.Compatibility.NotCompatible: result = PluginImporterInspector.Compatibility.Mixed; break; case PluginImporterInspector.Compatibility.Compatible: result = PluginImporterInspector.Compatibility.Compatible; break; case (PluginImporterInspector.Compatibility) 2: result = PluginImporterInspector.Compatibility.NotCompatible; break; default: throw new InvalidEnumArgumentException("Invalid value: " + value.ToString()); } return(result); }
private PluginImporterInspector.Compatibility SwitchToInclude(PluginImporterInspector.Compatibility value) { return(value); }