Пример #1
0
    public static void ProcessTexture2D(TextureImporter importer, ResolutionOptions res, bool usePackingTags, bool useAssetBundles, Platform plat)
    {
        string[] splitPath = importer.assetPath.Split(Path.AltDirectorySeparatorChar);
        string   pageName  = splitPath [splitPath.Length - 2];

        importer.textureType   = TextureImporterType.Sprite;
        importer.mipmapEnabled = false;

        if (useAssetBundles)
        {
            importer.assetBundleName    = pageName;
            importer.assetBundleVariant = "";
        }

        string[] splitPlat = plat.ToString().Split('_');
        foreach (string platStr in splitPlat)
        {
            if (usePackingTags)
            {
                importer.spritePackingTag = pageName;
            }
            else
            {
                importer.spritePackingTag = "";
            }

            int maxTextureSize = (int)res;
            if (res == ResolutionOptions.NEXT_SMALLEST)
            {
                object[] args = new object[2] {
                    0, 0
                };
                MethodInfo mi = typeof(TextureImporter).GetMethod("GetWidthAndHeight", BindingFlags.NonPublic | BindingFlags.Instance);
                mi.Invoke(importer, args);

                int width  = (int)args [0];
                int height = (int)args [1];
                maxTextureSize = Mathf.ClosestPowerOfTwo(Mathf.Max(width, height));
                if (maxTextureSize >= Mathf.Max(width, height))
                {
                    maxTextureSize = maxTextureSize / 2;
                }
            }

            importer.SetPlatformTextureSettings(platStr, Mathf.Min(2048, maxTextureSize), TextureImporterFormat.AutomaticCompressed, 50, false);
        }
        AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath(importer), ImportAssetOptions.ForceUpdate);
    }
    private void CreateSupportedResolutionOptions()
    {
        supportedResolutions = Screen.resolutions;
        for (int i = 0; i < supportedResolutions.Length; i++)
        {
            if (supportedResolutions[i].refreshRate >= 29)
            {
                ResolutionOptions resolutionOption = new ResolutionOptions();
                resolutionOption.width       = supportedResolutions[i].width;
                resolutionOption.height      = supportedResolutions[i].height;
                resolutionOption.refreshRate = supportedResolutions[i].refreshRate;

                resolutionOptionsList.Add(resolutionOption);
            }
        }
    }
Пример #3
0
        void Start()
        {
            btnSave = GetControl <Button>("btn_setting_yes");

            resolutionMapping.Add(0, new ResolutionOptions("全屏模式 1920 * 1080", 1920, 1080, true));
            resolutionMapping.Add(1, new ResolutionOptions("全屏模式 1366 *  768", 1366, 768, true));
            resolutionMapping.Add(2, new ResolutionOptions("全屏模式 1024 *  768", 1024, 768, true));
            resolutionMapping.Add(3, new ResolutionOptions("窗口模式 1920 * 1080", 1920, 1080, false));
            resolutionMapping.Add(4, new ResolutionOptions("窗口模式 1366 *  768", 1366, 768, false));
            resolutionMapping.Add(5, new ResolutionOptions("窗口模式 1024 *  768", 1024, 768, false));

            //resolutionMapping.Add(3, new ResolutionOptions("全屏模式  800 *  600",  800,  600, true));
            //resolutionMapping.Add(7, new ResolutionOptions("窗口模式  800 *  600",  800,  600, false));

            btnSave.onClick.AddListener(() => {
                if (resolutionMapping.ContainsKey(resolutionIndex))
                {
                    ResolutionOptions options = resolutionMapping[resolutionIndex];
                    Screen.SetResolution(options.width, options.height, options.isFullScreen);
                }
            });

            btnExit  = GetControl <Button>("btn_setting_close");
            btnExit2 = GetControl <Button>("btn_setting_no");

            btnExit.onClick.AddListener(TurnBackToMainMenu);
            btnExit2.onClick.AddListener(TurnBackToMainMenu);

            resolutionDropdown = GetControl <Dropdown>("resolution_drop");

            List <string> resolutionDropOptions = new List <string>();

            for (int i = 0; i < resolutionMapping.Count; i++)
            {
                resolutionDropOptions.Add(resolutionMapping[i].optName);
            }

            resolutionDropdown.ClearOptions();
            resolutionDropdown.AddOptions(resolutionDropOptions);

            resolutionDropdown.onValueChanged.AddListener((index) =>
            {
                resolutionIndex = index;
            });
        }
Пример #4
0
    void OnGUI()
    {
        GUILayout.Label("Image Import Settings", EditorStyles.boldLabel);

        //Platform[] opt2 = (ResolutionOptions[]) Enum.GetValues(typeof(Platform));
        selectedPlatform = (Platform)EditorGUILayout.EnumPopup("Platform", selectedPlatform);

        usePackingTags = EditorGUILayout.Toggle("Packing Tags?", usePackingTags);
        //useAssetBundles = EditorGUILayout.Toggle ("Asset Bundles?", useAssetBundles);

        //ResolutionOptions[] opt = (ResolutionOptions[]) Enum.GetValues(typeof(ResolutionOptions));
        selectedRes = (ResolutionOptions)EditorGUILayout.EnumPopup("Max Res", selectedRes);

        GUILayout.Space(70);
        if (GUILayout.Button("Update"))
        {
            this.Close();
            ActuallyUpdateImages();
        }
    }
Пример #5
0
 public void setResolution(ResolutionOptions newResolution)
 {
     if (newResolution == ResolutionOptions.SMALL)
     {
         x = 800;
         y = 600;
     }
     else if (newResolution == ResolutionOptions.MEDIUM)
     {
         x = 1024;
         y = 768;
     }
     else //LARGE
     {
         x = 1280;
         y = 960;
     }
     Main.graphics.PreferredBackBufferHeight = y;
     Main.graphics.PreferredBackBufferWidth  = x;
     Main.graphics.ApplyChanges();
     MapHandling.refreshSize();  //update tiles
 }
Пример #6
0
    /// <summary>
    /// Updates the panel settings.
    /// </summary>
    /// <param name="force">If set to <c>true</c> force.</param>
    public static void UpdateImportSettings(bool force, ResolutionOptions res, bool usePackingTags, bool useAssetBundles, Platform plat)
    {
        int numImagesProcessed = 0;

        #region Get Data To Process
        if (Selection.gameObjects.Length != 0 && EditorUtility.DisplayDialog("Update Image Import Settings",
                                                                             string.Format("{0} object(s) selected in the hierachy. Process images on selected pages?", Selection.gameObjects.Length),
                                                                             "Update", "Cancel"))
        {
            int numPagesComplete = 0;
            foreach (var obj in Selection.gameObjects)
            {
                var page = obj.GetComponent <Page>();

                //var psd_obj = AssetDatabase.LoadAssetAtPath(page.psdAsset, typeof(UnityEngine.Object));
                //string pageFilePath = AssetDatabase.GetAssetOrScenePath(psd_obj);
                //string panelName = page.name;
                Image[] spritesInPage = obj.GetComponentsInChildren <Image> ();
                foreach (Image imageToProcess in spritesInPage)
                {
                    Sprite spriteToProcess = imageToProcess.sprite;
                    string spritePath      = AssetDatabase.GetAssetOrScenePath(spriteToProcess);
                    if (spritePath.Contains("Images"))
                    {
                        TextureImporter importer = AssetImporter.GetAtPath(spritePath) as TextureImporter;
                        if (importer != null)
                        {
                            ProcessTexture2D(importer, res, usePackingTags, useAssetBundles, plat);
                            numImagesProcessed++;
                            string updatedText = String.Format("{0}/{1} Pages Complete", numPagesComplete, Selection.gameObjects.Count());
                            if (EditorUtility.DisplayCancelableProgressBar("Progress", updatedText, (float)numPagesComplete / Selection.gameObjects.Count()))
                            {
                                EditorUtility.ClearProgressBar();
                                return;
                            }
                        }
                    }
                }
                numPagesComplete++;
            }
            EditorUtility.ClearProgressBar();
            EditorUtility.DisplayDialog("Update Import Settings", String.Format("{0} Pages Complete\n{1} Images Complete", numPagesComplete, numImagesProcessed), "Okay");
        }
        else
        {
            UnityEngine.Object[] selectedAsset = Selection.GetFiltered(typeof(Texture2D), SelectionMode.DeepAssets);
            if (selectedAsset.Length != 0 && EditorUtility.DisplayDialog("Update Image Import Settings",
                                                                         string.Format("No pages were selected in the scene, but folders are selected in the project window. Process images in selected folders?"),
                                                                         "Update", "Cancel"))
            {
                selectedAsset = selectedAsset.Where((val) => val.GetType() == typeof(Texture2D)).ToArray();
                int numimagesProcessed = 0;
                foreach (UnityEngine.Object obj in selectedAsset)
                {
                    TextureImporter importer = AssetImporter.GetAtPath(AssetDatabase.GetAssetPath(obj)) as TextureImporter;
                    if (importer != null)
                    {
                        ProcessTexture2D(importer, res, usePackingTags, useAssetBundles, plat);
                    }
                    numImagesProcessed++;
                    string updatedText = String.Format("{0}/{1} Images Complete", numImagesProcessed, selectedAsset.Length);
                    if (EditorUtility.DisplayCancelableProgressBar("Progress", updatedText, (float)numImagesProcessed / selectedAsset.Length))
                    {
                        EditorUtility.ClearProgressBar();
                        return;
                    }
                }
                EditorUtility.ClearProgressBar();
                EditorUtility.DisplayDialog("Update Import Settings", String.Format("{0} Images Complete", numImagesProcessed), "Okay");
            }
            else if (EditorUtility.DisplayDialog("Update Image Import Settings",
                                                 string.Format("Would you like to update ALL IMAGES?"),
                                                 "Update", "Cancel"))
            {
                //Test All this stuff
                string[] paths = System.IO.Directory.GetFiles(Application.dataPath + "/Images", "*.png", SearchOption.AllDirectories);
                foreach (string spritePath in paths)
                {
                    string          processedSpritePath = "Assets" + spritePath.Replace(Application.dataPath, "");            //.Replace (Path.AltDirectorySeparatorChar, '/')
                    TextureImporter importer            = AssetImporter.GetAtPath(processedSpritePath) as TextureImporter;
                    if (importer != null)
                    {
                        ProcessTexture2D(importer, res, usePackingTags, useAssetBundles, plat);
                    }
                    numImagesProcessed++;
                    string updatedText = String.Format("{0}/{1} Images Complete", numImagesProcessed, paths.Length);
                    if (EditorUtility.DisplayCancelableProgressBar("Progress", updatedText, (float)numImagesProcessed / paths.Length))
                    {
                        EditorUtility.ClearProgressBar();
                        return;
                    }
                }
                EditorUtility.ClearProgressBar();
                EditorUtility.DisplayDialog("Update Import Settings", String.Format("{0} Images Complete", numImagesProcessed), "Okay");
            }
        }
        #endregion
    }
Пример #7
0
        /// <summary>
        /// Goes to the "next" resolution option
        /// </summary>
        private void CycleResForward()
        {
            if (CurrentResState == ResolutionOptions.SIX)
            {
                CurrentResState = ResolutionOptions.ZERO;
            }
            else
            {
                CurrentResState++;
            }

            for (int i = 0; i < int_NumOfResOptions; i++)
            {
                if (i == (int)CurrentResState)
                {
                    resItems[i].t2d_Texture = resItems[i].t2d_Texture_Highlight;
                }
                else
                {
                    if (i == (int)PreviousResState)
                    {
                        resItems[i].t2d_Texture = resItems[i].t2d_Texture_Selected;
                    }
                    else
                    {
                        resItems[i].t2d_Texture = resItems[i].t2d_Texture_Original;
                    }
                }
            }
        }
Пример #8
0
        public override void Update()
        {
            if (CurrentWorkerState != VideoMenuState.VOID)
            {
                if (isBusy)
                {
                    if (mInput.Peek.IsKeyPressed(Keys.W) || mInput.Peek.IsKeyPressed(Keys.Up))
                    {
                        CycleResBack();
                    }

                    if (mInput.Peek.IsKeyPressed(Keys.S) || mInput.Peek.IsKeyPressed(Keys.Down))
                    {
                        CycleResForward();
                    }

                    #region CycleLeftRight

                    #region CycleLeft

                    if (mInput.Peek.IsKeyPressed(Keys.A) || mInput.Peek.IsKeyPressed(Keys.Left))
                    {
                        switch (CurrentResState)
                        {
                            case ResolutionOptions.FOUR:
                                CurrentResState = ResolutionOptions.ZERO;
                                for (int i = 0; i < int_NumOfResOptions; i++)
                                {
                                    if (i == (int)CurrentResState)
                                    {
                                        resItems[i].t2d_Texture = resItems[i].t2d_Texture_Highlight;
                                    }
                                    else
                                    {
                                        if (i == (int)PreviousResState)
                                        {
                                            resItems[i].t2d_Texture = resItems[i].t2d_Texture_Selected;
                                        }
                                        else
                                        {
                                            resItems[i].t2d_Texture = resItems[i].t2d_Texture_Original;
                                        }
                                    }
                                }
                                break;

                            case ResolutionOptions.FIVE:
                                CurrentResState = ResolutionOptions.ONE;
                                for (int i = 0; i < int_NumOfResOptions; i++)
                                {
                                    if (i == (int)CurrentResState)
                                    {
                                        resItems[i].t2d_Texture = resItems[i].t2d_Texture_Highlight;
                                    }
                                    else
                                    {
                                        if (i == (int)PreviousResState)
                                        {
                                            resItems[i].t2d_Texture = resItems[i].t2d_Texture_Selected;
                                        }
                                        else
                                        {
                                            resItems[i].t2d_Texture = resItems[i].t2d_Texture_Original;
                                        }
                                    }
                                }
                                break;

                            case ResolutionOptions.SIX:
                                CurrentResState = ResolutionOptions.TWO;
                                for (int i = 0; i < int_NumOfResOptions; i++)
                                {
                                    if (i == (int)CurrentResState)
                                    {
                                        resItems[i].t2d_Texture = resItems[i].t2d_Texture_Highlight;
                                    }
                                    else
                                    {
                                        if (i == (int)PreviousResState)
                                        {
                                            resItems[i].t2d_Texture = resItems[i].t2d_Texture_Selected;
                                        }
                                        else
                                        {
                                            resItems[i].t2d_Texture = resItems[i].t2d_Texture_Original;
                                        }
                                    }
                                }
                                break;
                        }

                        for (int i = 0; i < int_NumOfResOptions; i++)
                        {
                            if (i == (int)CurrentResState)
                            {
                                resItems[i].t2d_Texture = resItems[i].t2d_Texture_Highlight;
                            }
                            else
                            {
                                if (i == (int)PreviousResState)
                                {
                                    resItems[i].t2d_Texture = resItems[i].t2d_Texture_Selected;
                                }
                                else
                                {
                                    resItems[i].t2d_Texture = resItems[i].t2d_Texture_Original;
                                }
                            }
                        }
                    }

                    #endregion

                    #region CycleRight

                    if (mInput.Peek.IsKeyPressed(Keys.D) || mInput.Peek.IsKeyPressed(Keys.Right))
                    {
                        switch (CurrentResState)
                        {
                            case ResolutionOptions.ZERO:
                                CurrentResState = ResolutionOptions.FOUR;
                                for (int i = 0; i < int_NumOfResOptions; i++)
                                {
                                    if (i == (int)CurrentResState)
                                    {
                                        resItems[i].t2d_Texture = resItems[i].t2d_Texture_Highlight;
                                    }
                                    else
                                    {
                                        if (i == (int)PreviousResState)
                                        {
                                            resItems[i].t2d_Texture = resItems[i].t2d_Texture_Selected;
                                        }
                                        else
                                        {
                                            resItems[i].t2d_Texture = resItems[i].t2d_Texture_Gray;
                                        }
                                    }
                                }
                                break;

                            case ResolutionOptions.ONE:
                                CurrentResState = ResolutionOptions.FIVE;
                                for (int i = 0; i < int_NumOfResOptions; i++)
                                {
                                    if (i == (int)CurrentResState)
                                    {
                                        resItems[i].t2d_Texture = resItems[i].t2d_Texture_Highlight;
                                    }
                                    else
                                    {
                                        if (i == (int)PreviousResState)
                                        {
                                            resItems[i].t2d_Texture = resItems[i].t2d_Texture_Selected;
                                        }
                                        else
                                        {
                                            resItems[i].t2d_Texture = resItems[i].t2d_Texture_Original;
                                        }
                                    }
                                }
                                break;

                            case ResolutionOptions.TWO:
                                CurrentResState = ResolutionOptions.SIX;
                                for (int i = 0; i < int_NumOfResOptions; i++)
                                {
                                    if (i == (int)CurrentResState)
                                    {
                                        resItems[i].t2d_Texture = resItems[i].t2d_Texture_Highlight;
                                    }
                                    else
                                    {
                                        if (i == (int)PreviousResState)
                                        {
                                            resItems[i].t2d_Texture = resItems[i].t2d_Texture_Selected;
                                        }
                                        else
                                        {
                                            resItems[i].t2d_Texture = resItems[i].t2d_Texture_Original;
                                        }
                                    }
                                }
                                break;
                        }

                        for (int i = 0; i < int_NumOfResOptions; i++)
                        {
                            if (i == (int)CurrentResState)
                            {
                                resItems[i].t2d_Texture = resItems[i].t2d_Texture_Highlight;
                            }
                            else
                            {
                                if (i == (int)PreviousResState)
                                {
                                    resItems[i].t2d_Texture = resItems[i].t2d_Texture_Selected;
                                }
                                else
                                {
                                    resItems[i].t2d_Texture = resItems[i].t2d_Texture_Original;
                                }
                            }
                        }
                    }

                    #endregion

                    #endregion

                    if (mInput.Peek.IsKeyPressed(Keys.Enter))
                    {
                        switch (CurrentResState)
                        {
                            case ResolutionOptions.ZERO:
                                mGraphics.Peek.BackBufferResolution = Engine.TempVector2(800, 600);
                                break;

                            case ResolutionOptions.ONE:
                                mGraphics.Peek.BackBufferResolution = Engine.TempVector2(1024, 768);
                                break;

                            case ResolutionOptions.TWO:
                                mGraphics.Peek.BackBufferResolution = Engine.TempVector2(1280, 720);
                                break;

                            case ResolutionOptions.THREE:
                                mGraphics.Peek.BackBufferResolution = Engine.TempVector2(1366, 768);
                                break;

                            case ResolutionOptions.FOUR:
                                mGraphics.Peek.BackBufferResolution = Engine.TempVector2(1440, 900);
                                break;

                            case ResolutionOptions.FIVE:
                                mGraphics.Peek.BackBufferResolution = Engine.TempVector2(1680, 1050);
                                break;

                            case ResolutionOptions.SIX:
                                mGraphics.Peek.BackBufferResolution = Engine.TempVector2(1950, 1080);
                                break;
                        }
                        for (int i = 0; i < int_NumOfResOptions; i++)
                        {
                            if (i == (int)CurrentResState)
                            {
                                resItems[i].t2d_Texture = resItems[i].t2d_Texture_Selected;
                            }

                            else
                            {
                                resItems[i].t2d_Texture = resItems[i].t2d_Texture_Gray;
                            }
                        }
                        menuItems[0].t2d_Texture = menuItems[0].t2d_Texture_Highlight;
                        isBusy = false;
                    }

                }

                else
                {
                    if (mInput.Peek.IsKeyPressed(Keys.W) || mInput.Peek.IsKeyPressed(Keys.Up))
                    {
                        CycleBack();
                    }

                    if (mInput.Peek.IsKeyPressed(Keys.S) || mInput.Peek.IsKeyPressed(Keys.Down))
                    {
                        CycleForward();
                    }

                    if (isChanging)
                    {
                        mMenu.Peek.GoToPreviousState();

                        menuItems[(int)CurrentWorkerState].t2d_Texture = menuItems[(int)CurrentWorkerState].t2d_Texture_Highlight;

                        isChanging = false;

                        MenuVoid();
                    }

                    if (mInput.Peek.IsKeyPressed(Keys.Enter))
                    {
                        switch (CurrentWorkerState)
                        {
                            case VideoMenuState.RESOLUTION:
                                PreviousResState = CurrentResState;
                                //menuItems[0].t2d_Texture = menuItems[0].t2d_Texture_Selected;
                                for (int i = 0; i < int_NumOfResOptions; i++)
                                {
                                    if (i == (int)CurrentResState)
                                    {
                                        resItems[i].t2d_Texture = resItems[i].t2d_Texture_Selected;
                                    }
                                    else
                                    {
                                        resItems[i].t2d_Texture = resItems[i].t2d_Texture_Original;
                                    }
                                }
                                isBusy = true;
                                break;

                            case VideoMenuState.FULLSCREEN:
                                if (mGraphics.Peek.IsFullScreen)
                                {
                                    mGraphics.Peek.IsFullScreen = false;
                                    mGraphics.Peek.Graphics.ApplyChanges();
                                    menuItems[1].t2d_Texture = menuItems[1].t2d_Texture_Highlight;
                                }
                                else
                                {
                                    mGraphics.Peek.IsFullScreen = true;
                                    mGraphics.Peek.Graphics.ApplyChanges();
                                    menuItems[1].t2d_Texture = menuItems[1].t2d_Texture_Selected;
                                }
                                break;

                            case VideoMenuState.POST:
                                if (mGraphics.Peek.PostProcessing)
                                {
                                    mGraphics.Peek.PostProcessing = false;
                                    menuItems[2].t2d_Texture = menuItems[2].t2d_Texture_Highlight;
                                }
                                else
                                {
                                    mGraphics.Peek.PostProcessing = true;
                                    menuItems[2].t2d_Texture = menuItems[2].t2d_Texture_Selected;
                                }
                                break;

                            case VideoMenuState.BACK:
                                menuItems[(int)CurrentWorkerState].t2d_Texture = menuItems[(int)CurrentWorkerState].t2d_Texture_Selected;
                                isChanging = true;
                                break;

                            default:
                                break;
                        }
                    }
                }
            }
        }
Пример #9
0
        public override void Initialize()
        {
            menuBackground = new menuItem();

            menuItems = new menuItem[int_NumOfOptions];
            for (int i = 0; i < int_NumOfOptions; i++)
            {
                menuItems[i] = new menuItem();
            }

            resItems = new menuItem[int_NumOfResOptions];
            for (int i = 0; i < int_NumOfResOptions; i++)
            {
                resItems[i] = new menuItem();
            }

            CurrentWorkerState = VideoMenuState.BACK;
            CurrentResState = ResolutionOptions.ZERO;
        }