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); } } }
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; }); }
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(); } }
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 }
/// <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 }
/// <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; } } } }
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; } } } } }
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; }