Inheritance: UnityEditor.Modules.DefaultBuildWindowExtension
        public static BuildTarget CalculateSelectedBuildTarget()
        {
            BuildTargetGroup targetGroup = EditorUserBuildSettings.selectedBuildTargetGroup;

            switch (targetGroup)
            {
            case BuildTargetGroup.Standalone:
                return(DesktopStandaloneBuildWindowExtension.GetBestStandaloneTarget(EditorUserBuildSettings.selectedStandaloneTarget));

            case BuildTargetGroup.Facebook:
                return(EditorUserBuildSettings.selectedFacebookTarget);

            default:
                if (BuildPlatforms.instance == null)
                {
                    throw new System.Exception("Build platforms are not initialized.");
                }
                BuildPlatform platform = BuildPlatforms.instance.BuildPlatformFromTargetGroup(targetGroup);
                if (platform == null)
                {
                    throw new System.Exception("Could not find build platform for target group " + targetGroup);
                }
                return(platform.defaultTarget);
            }
        }
 internal static BuildTarget CalculateSelectedBuildTarget(NamedBuildTarget namedBuildTarget)
 {
     if (namedBuildTarget.ToBuildTargetGroup() == BuildTargetGroup.Standalone)
     {
         BuildTarget target = EditorUserBuildSettings.selectedStandaloneTarget;
         if (target == BuildTarget.NoTarget)
         {
             target = EditorUserBuildSettings.activeBuildTarget;
         }
         return(DesktopStandaloneBuildWindowExtension.GetBestStandaloneTarget(target));
     }
     else
     {
         if (BuildPlatforms.instance == null)
         {
             throw new System.Exception("Build platforms are not initialized.");
         }
         BuildPlatform platform = BuildPlatforms.instance.BuildPlatformFromNamedBuildTarget(namedBuildTarget);
         if (platform == null)
         {
             throw new System.Exception("Could not find build platform for target group " + namedBuildTarget.TargetName);
         }
         return(platform.defaultTarget);
     }
 }
        public static BuildTarget CalculateSelectedBuildTarget()
        {
            BuildTargetGroup selectedBuildTargetGroup = EditorUserBuildSettings.selectedBuildTargetGroup;
            BuildTarget      result;

            if (selectedBuildTargetGroup != BuildTargetGroup.Standalone)
            {
                if (selectedBuildTargetGroup != BuildTargetGroup.Facebook)
                {
                    if (BuildPlatforms.instance == null)
                    {
                        throw new Exception("Build platforms are not initialized.");
                    }
                    BuildPlatform buildPlatform = BuildPlatforms.instance.BuildPlatformFromTargetGroup(selectedBuildTargetGroup);
                    if (buildPlatform == null)
                    {
                        throw new Exception("Could not find build platform for target group " + selectedBuildTargetGroup);
                    }
                    result = buildPlatform.defaultTarget;
                }
                else
                {
                    result = EditorUserBuildSettings.selectedFacebookTarget;
                }
            }
            else
            {
                result = DesktopStandaloneBuildWindowExtension.GetBestStandaloneTarget(EditorUserBuildSettings.selectedStandaloneTarget);
            }
            return(result);
        }
Esempio n. 4
0
        public override void CheckError()
        {
            var currentParams = P.GetCurrentParams();
            var lst           = new List <string>(32);

            if (currentParams.scriptingBackend == ScriptingImplementation.IL2CPP)
            {
                var    ss  = UnityEditorModulesModuleManager.GetTargetStringFrom(UnityEditorEditorUserBuildSettings.activeBuildTargetGroup, EditorUserBuildSettings.activeBuildTarget);
                object obj = UnityEditorModulesModuleManager.GetBuildWindowExtension(ss);
                var    ext = new DesktopStandaloneBuildWindowExtension(obj);
                var    mes = ext.GetCannotBuildIl2CppPlayerInCurrentSetupError();
                if (!mes.IsEmpty())
                {
                    lst.Add(mes);
                }
            }
            errorMessages = lst.ToArray();
        }
        public static bool BuildTargetSupportsRenderer(BuildPlatform platform, GraphicsDeviceType type)
        {
            BuildTarget buildTarget = platform.defaultTarget;

            if (platform.targetGroup == BuildTargetGroup.Standalone)
            {
                buildTarget = DesktopStandaloneBuildWindowExtension.GetBestStandaloneTarget(buildTarget);
            }

            foreach (int var in GetRenderList(buildTarget))
            {
                if ((GraphicsDeviceType)var == type)
                {
                    return(true);
                }
            }

            return(false);
        }
    public override void ShowPlatformBuildOptions()
    {
        BuildTarget bestStandaloneTarget = DesktopStandaloneBuildWindowExtension.GetBestStandaloneTarget(EditorUserBuildSettings.selectedStandaloneTarget);
        BuildTarget buildTarget          = EditorUserBuildSettings.selectedStandaloneTarget;
        int         num  = Math.Max(0, Array.IndexOf <BuildTarget>(this.m_StandaloneSubtargets, DesktopStandaloneBuildWindowExtension.DefaultTargetForPlatform(bestStandaloneTarget)));
        int         num2 = EditorGUILayout.Popup(this.m_StandaloneTarget, num, this.m_StandaloneSubtargetStrings, new GUILayoutOption[0]);

        if (num2 == num)
        {
            Dictionary <GUIContent, BuildTarget> architecturesForPlatform = DesktopStandaloneBuildWindowExtension.GetArchitecturesForPlatform(bestStandaloneTarget);
            if (architecturesForPlatform != null)
            {
                GUIContent[] array = new List <GUIContent>(architecturesForPlatform.Keys).ToArray();
                int          num3  = 0;
                if (num2 == num)
                {
                    foreach (KeyValuePair <GUIContent, BuildTarget> current in architecturesForPlatform)
                    {
                        if (current.Value == bestStandaloneTarget)
                        {
                            num3 = Math.Max(0, Array.IndexOf <GUIContent>(array, current.Key));
                            break;
                        }
                    }
                }
                num3        = EditorGUILayout.Popup(this.m_Architecture, num3, array, new GUILayoutOption[0]);
                buildTarget = architecturesForPlatform[array[num3]];
            }
        }
        else
        {
            buildTarget = this.m_StandaloneSubtargets[num2];
        }
        if (buildTarget != EditorUserBuildSettings.selectedStandaloneTarget)
        {
            EditorUserBuildSettings.selectedStandaloneTarget = buildTarget;
            GUIUtility.ExitGUI();
        }
        this.ShowIl2CppErrorIfNeeded();
    }