123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487 |
- using UnityEngine;
-
- using UnityEditor;
- using UnityEngine.UI;
-
- // /////////////////////////////////////////////////////////////////////////////////////////////////////////
- //
- // Batch Texture import settings modifier.
- //
- // Modifies all selected textures in the project window and applies the requested modification on the
-
- // textures. Idea was to have the same choices for multiple files as you would have if you open the
-
- // import settings of a single texture. Put this into Assets/Editor and once compiled by Unity you find
-
- // the new functionality in Custom -> Texture. Enjoy! :-)
-
- //
-
- // Based on the great work of benblo in this thread:
- // http://forum.unity3d.com/viewtopic.php?t=16079&start=0&postdays=0&postorder=asc&highlight=textureimporter
- //
- // Developed by Martin Schultz, Decane in August 2009
- // e-mail: ms@decane.net
- //
- // Updated for Unity 3.0 by col000r in August 2010
- // http://col000r.blogspot.com
- //
- // /////////////////////////////////////////////////////////////////////////////////////////////////////////
-
- public class ChangeTextureImportSettingsUnity3 : ScriptableObject {
-
-
-
- [MenuItem ("Custom/Texture/Change Texture Format/Auto Compressed")]
-
- static void ChangeTextureFormat_AutoCompressed() {
-
- SelectedChangeTextureFormatSettings(TextureImporterFormat.AutomaticCompressed);
-
- }
-
-
-
- [MenuItem ("Custom/Texture/Change Texture Format/Auto 16bit")]
-
- static void ChangeTextureFormat_Auto16Bit() {
-
- SelectedChangeTextureFormatSettings(TextureImporterFormat.Automatic16bit);
-
- }
-
-
-
- [MenuItem ("Custom/Texture/Change Texture Format/Auto Truecolor")]
-
- static void ChangeTextureFormat_AutoTruecolor() {
-
- SelectedChangeTextureFormatSettings(TextureImporterFormat.AutomaticTruecolor);
-
- }
-
-
-
- [MenuItem ("Custom/Texture/Change Texture Format/RGB Compressed DXT1")]
-
- static void ChangeTextureFormat_RGB_DXT1() {
-
- SelectedChangeTextureFormatSettings(TextureImporterFormat.DXT1);
-
- }
-
-
-
- [MenuItem ("Custom/Texture/Change Texture Format/RGB Compressed DXT5")]
-
- static void ChangeTextureFormat_RGB_DXT5() {
-
- SelectedChangeTextureFormatSettings(TextureImporterFormat.DXT5);
-
- }
-
-
-
- [MenuItem ("Custom/Texture/Change Texture Format/RGB 16 bit")]
-
- static void ChangeTextureFormat_RGB_16bit() {
-
- SelectedChangeTextureFormatSettings(TextureImporterFormat.RGB16);
-
- }
-
-
-
- [MenuItem ("Custom/Texture/Change Texture Format/RGB 24 bit")]
-
- static void ChangeTextureFormat_RGB_24bit() {
-
- SelectedChangeTextureFormatSettings(TextureImporterFormat.RGB24);
-
- }
-
-
-
- [MenuItem ("Custom/Texture/Change Texture Format/Alpha 8 bit")]
-
- static void ChangeTextureFormat_Alpha_8bit() {
-
- SelectedChangeTextureFormatSettings(TextureImporterFormat.Alpha8);
-
- }
-
-
-
- [MenuItem ("Custom/Texture/Change Texture Format/ARGB 16 bit")]
-
- static void ChangeTextureFormat_RGBA_16bit() {
-
- SelectedChangeTextureFormatSettings(TextureImporterFormat.ARGB16);
-
- }
-
-
-
- [MenuItem ("Custom/Texture/Change Texture Format/RGBA 32 bit")]
-
- static void ChangeTextureFormat_RGBA_32bit() {
-
- SelectedChangeTextureFormatSettings(TextureImporterFormat.RGBA32);
-
- }
-
-
-
- [MenuItem ("Custom/Texture/Change Texture Format/ARGB 32 bit")]
-
- static void ChangeTextureFormat_ARGB_32bit() {
-
- SelectedChangeTextureFormatSettings(TextureImporterFormat.ARGB32);
-
- }
-
-
-
- [MenuItem ("Custom/Texture/Change Texture Format/RGB PVRTC 2bit")]
-
- static void ChangeTextureFormat_RGB_PVRTC_2bit() {
-
- SelectedChangeTextureFormatSettings(TextureImporterFormat.PVRTC_RGB2);
-
- }
-
-
-
- [MenuItem ("Custom/Texture/Change Texture Format/RGBA PVRTC 2bit")]
-
- static void ChangeTextureFormat_RGBA_PVRTC_2bit() {
-
- SelectedChangeTextureFormatSettings(TextureImporterFormat.PVRTC_RGBA2);
-
- }
-
-
-
- [MenuItem ("Custom/Texture/Change Texture Format/RGB PVRTC 4bit")]
-
- static void ChangeTextureFormat_RGB_PVRTC_4bit() {
-
- SelectedChangeTextureFormatSettings(TextureImporterFormat.PVRTC_RGB4);
-
- }
-
-
-
- [MenuItem ("Custom/Texture/Change Texture Format/RGBA PVRTC 4bit")]
-
- static void ChangeTextureFormat_RGBA_PVRTC_4bit() {
-
- SelectedChangeTextureFormatSettings(TextureImporterFormat.PVRTC_RGBA4);
-
- }
-
-
-
- // ----------------------------------------------------------------------------
-
-
-
- [MenuItem ("Custom/Texture/Change Texture Size/Change Max Texture Size/32")]
-
- static void ChangeTextureSize_32() {
-
- SelectedChangeMaxTextureSize(32);
-
- }
-
-
-
- [MenuItem ("Custom/Texture/Change Texture Size/Change Max Texture Size/64")]
-
- static void ChangeTextureSize_64() {
-
- SelectedChangeMaxTextureSize(64);
-
- }
-
-
-
- [MenuItem ("Custom/Texture/Change Texture Size/Change Max Texture Size/128")]
-
- static void ChangeTextureSize_128() {
-
- SelectedChangeMaxTextureSize(128);
-
- }
-
-
-
- [MenuItem ("Custom/Texture/Change Texture Size/Change Max Texture Size/256")]
-
- static void ChangeTextureSize_256() {
-
- SelectedChangeMaxTextureSize(256);
-
- }
-
-
-
- [MenuItem ("Custom/Texture/Change Texture Size/Change Max Texture Size/512")]
-
- static void ChangeTextureSize_512() {
-
- SelectedChangeMaxTextureSize(512);
-
- }
-
-
-
- [MenuItem ("Custom/Texture/Change Texture Size/Change Max Texture Size/1024")]
-
- static void ChangeTextureSize_1024() {
-
- SelectedChangeMaxTextureSize(1024);
-
- }
-
-
-
- [MenuItem ("Custom/Texture/Change Texture Size/Change Max Texture Size/2048")]
-
- static void ChangeTextureSize_2048() {
-
- SelectedChangeMaxTextureSize(2048);
-
- }
-
-
-
- // ----------------------------------------------------------------------------
-
-
-
- [MenuItem ("Custom/Texture/Change MipMap/Enable MipMap")]
-
- static void ChangeMipMap_On() {
-
- SelectedChangeMimMap(true);
-
- }
-
-
-
- [MenuItem ("Custom/Texture/Change MipMap/Disable MipMap")]
-
- static void ChangeMipMap_Off() {
-
- SelectedChangeMimMap(false);
-
- }
-
-
-
- // ----------------------------------------------------------------------------
-
-
-
-
-
- [MenuItem ("Custom/Texture/Change Non Power of 2/None")]
-
- static void ChangeNPOT_None() {
-
- SelectedChangeNonPowerOf2(TextureImporterNPOTScale.None);
-
- }
-
-
-
- [MenuItem ("Custom/Texture/Change Non Power of 2/ToNearest")]
-
- static void ChangeNPOT_ToNearest() {
-
- SelectedChangeNonPowerOf2(TextureImporterNPOTScale.ToNearest);
-
- }
-
-
-
- [MenuItem ("Custom/Texture/Change Non Power of 2/ToLarger")]
-
- static void ChangeNPOT_ToLarger() {
-
- SelectedChangeNonPowerOf2(TextureImporterNPOTScale.ToLarger);
-
- }
-
-
-
- [MenuItem ("Custom/Texture/Change Non Power of 2/ToSmaller")]
-
- static void ChangeNPOT_ToSmaller() {
-
- SelectedChangeNonPowerOf2(TextureImporterNPOTScale.ToSmaller);
-
- }
-
-
-
- // ----------------------------------------------------------------------------
-
-
-
- [MenuItem ("Custom/Texture/Change Is Readable/Enable")]
-
- static void ChangeIsReadable_Yes() {
-
- SelectedChangeIsReadable(true);
-
- }
-
-
-
- [MenuItem ("Custom/Texture/Change Is Readable/Disable")]
-
- static void ChangeIsReadable_No() {
-
- SelectedChangeIsReadable(false);
-
- } //Unity3D教程手册:www.unitymanual.com
-
-
-
- // ----------------------------------------------------------------------------
-
-
-
- static void SelectedChangeIsReadable(bool enabled) {
-
-
-
- Object[] textures = GetSelectedTextures();
-
- Selection.objects = new Object[0];
-
- foreach (Texture2D texture in textures) {
-
- string path = AssetDatabase.GetAssetPath(texture);
-
- TextureImporter textureImporter = AssetImporter.GetAtPath(path) as TextureImporter;
-
- textureImporter.isReadable = enabled;
-
- AssetDatabase.ImportAsset(path);
-
- }
-
- }
- static void SelectedChangeNonPowerOf2(TextureImporterNPOTScale npot) {
-
-
-
- Object[] textures = GetSelectedTextures();
-
- Selection.objects = new Object[0];
-
- foreach (Texture2D texture in textures) {
-
- string path = AssetDatabase.GetAssetPath(texture);
-
- TextureImporter textureImporter = AssetImporter.GetAtPath(path) as TextureImporter;
-
- textureImporter.npotScale = npot;
-
- AssetDatabase.ImportAsset(path);
-
- }
-
- }
-
-
-
- static void SelectedChangeMimMap(bool enabled) {
-
-
-
- Object[] textures = GetSelectedTextures();
-
- Selection.objects = new Object[0];
-
- foreach (Texture2D texture in textures) {
-
- string path = AssetDatabase.GetAssetPath(texture);
-
- TextureImporter textureImporter = AssetImporter.GetAtPath(path) as TextureImporter;
-
- textureImporter.mipmapEnabled = enabled;
-
- AssetDatabase.ImportAsset(path);
-
- }
-
- }
-
- //Unity3D教程手册:www.unitymanual.com
-
- static void SelectedChangeMaxTextureSize(int size) {
-
-
-
- Object[] textures = GetSelectedTextures();
-
- Selection.objects = new Object[0];
-
- foreach (Texture2D texture in textures) {
-
- string path = AssetDatabase.GetAssetPath(texture);
-
- TextureImporter textureImporter = AssetImporter.GetAtPath(path) as TextureImporter;
-
- textureImporter.maxTextureSize = size;
-
- AssetDatabase.ImportAsset(path);
-
- }
-
- }
-
-
-
- static void SelectedChangeTextureFormatSettings(TextureImporterFormat newFormat) {
-
-
-
- Object[] textures = GetSelectedTextures();
-
- Selection.objects = new Object[0];
-
- foreach (Texture2D texture in textures) {
-
- string path = AssetDatabase.GetAssetPath(texture);
-
- //Debug.Log("path: " + path);
-
- TextureImporter textureImporter = AssetImporter.GetAtPath(path) as TextureImporter;
-
- textureImporter.textureFormat = newFormat;
-
- AssetDatabase.ImportAsset(path);
-
- }
-
- }
-
-
-
- static Object[] GetSelectedTextures()
-
- {
-
- return Selection.GetFiltered(typeof(Texture2D), SelectionMode.DeepAssets);
-
- }
-
- }
|