SetPlatformTextureSettings() private method

private SetPlatformTextureSettings ( TextureImporterPlatformSettings platformSettings ) : void
platformSettings TextureImporterPlatformSettings
return void
 public void Apply()
 {
     for (int i = 0; i < this.importers.Length; i++)
     {
         TextureImporter textureImporter    = this.importers[i];
         int             compressionQuality = -1;
         bool            flag = false;
         int             maxTextureSize;
         if (this.isDefault)
         {
             maxTextureSize = textureImporter.maxTextureSize;
         }
         else
         {
             TextureImporterFormat textureImporterFormat;
             flag = textureImporter.GetPlatformTextureSettings(this.name, out maxTextureSize, out textureImporterFormat, out compressionQuality);
         }
         if (!flag)
         {
             maxTextureSize = textureImporter.maxTextureSize;
         }
         if (!this.m_MaxTextureSizeIsDifferent)
         {
             maxTextureSize = this.m_MaxTextureSize;
         }
         if (!this.m_CompressionQualityIsDifferent)
         {
             compressionQuality = this.m_CompressionQuality;
         }
         if (!this.isDefault)
         {
             if (!this.m_OverriddenIsDifferent)
             {
                 flag = this.m_Overridden;
             }
             bool allowsAlphaSplitting = textureImporter.GetAllowsAlphaSplitting();
             if (flag)
             {
                 textureImporter.SetPlatformTextureSettings(this.name, maxTextureSize, this.m_TextureFormatArray[i], compressionQuality, allowsAlphaSplitting);
             }
             else
             {
                 textureImporter.ClearPlatformTextureSettings(this.name);
             }
         }
         else
         {
             textureImporter.maxTextureSize     = maxTextureSize;
             textureImporter.textureFormat      = this.m_TextureFormatArray[i];
             textureImporter.compressionQuality = compressionQuality;
         }
     }
 }
示例#2
0
        public void Apply()
        {
            for (int i = 0; i < importers.Length; i++)
            {
                TextureImporter imp = importers[i];

                TextureImporterPlatformSettings platformSettings = imp.GetPlatformTextureSettings(name);

                // Overwrite with inspector properties if same for all targets
                if (!m_OverriddenIsDifferent)
                {
                    platformSettings.overridden = m_PlatformSettings.overridden;
                }
                if (!m_TextureFormatIsDifferent)
                {
                    platformSettings.format = m_PlatformSettings.format;
                }
                if (!m_MaxTextureSizeIsDifferent)
                {
                    platformSettings.maxTextureSize = m_PlatformSettings.maxTextureSize;
                }
                if (!m_ResizeAlgorithmIsDifferent)
                {
                    platformSettings.resizeAlgorithm = m_PlatformSettings.resizeAlgorithm;
                }
                if (!m_TextureCompressionIsDifferent)
                {
                    platformSettings.textureCompression = m_PlatformSettings.textureCompression;
                }
                if (!m_CompressionQualityIsDifferent)
                {
                    platformSettings.compressionQuality = m_PlatformSettings.compressionQuality;
                }
                if (!m_CrunchedCompressionIsDifferent)
                {
                    platformSettings.crunchedCompression = m_PlatformSettings.crunchedCompression;
                }
                if (!m_AlphaSplitIsDifferent)
                {
                    platformSettings.allowsAlphaSplitting = m_PlatformSettings.allowsAlphaSplitting;
                }
                if (!m_AndroidETC2FallbackOverrideIsDifferent)
                {
                    platformSettings.androidETC2FallbackOverride = m_PlatformSettings.androidETC2FallbackOverride;
                }

                platformSettings.forceMaximumCompressionQuality_BC6H_BC7 = m_PlatformSettings.forceMaximumCompressionQuality_BC6H_BC7;

                imp.SetPlatformTextureSettings(platformSettings);
            }

            m_HasChanged = false;
        }
示例#3
0
 public void Apply()
 {
     for (int i = 0; i < this.importers.Length; i++)
     {
         TextureImporter textureImporter = this.importers[i];
         TextureImporterPlatformSettings platformTextureSettings = textureImporter.GetPlatformTextureSettings(this.name);
         if (!this.m_OverriddenIsDifferent)
         {
             platformTextureSettings.overridden = this.m_PlatformSettings.overridden;
         }
         if (!this.m_TextureFormatIsDifferent)
         {
             platformTextureSettings.format = this.m_PlatformSettings.format;
         }
         if (!this.m_MaxTextureSizeIsDifferent)
         {
             platformTextureSettings.maxTextureSize = this.m_PlatformSettings.maxTextureSize;
         }
         if (!this.m_ResizeAlgorithmIsDifferent)
         {
             platformTextureSettings.resizeAlgorithm = this.m_PlatformSettings.resizeAlgorithm;
         }
         if (!this.m_TextureCompressionIsDifferent)
         {
             platformTextureSettings.textureCompression = this.m_PlatformSettings.textureCompression;
         }
         if (!this.m_CompressionQualityIsDifferent)
         {
             platformTextureSettings.compressionQuality = this.m_PlatformSettings.compressionQuality;
         }
         if (!this.m_CrunchedCompressionIsDifferent)
         {
             platformTextureSettings.crunchedCompression = this.m_PlatformSettings.crunchedCompression;
         }
         if (!this.m_AlphaSplitIsDifferent)
         {
             platformTextureSettings.allowsAlphaSplitting = this.m_PlatformSettings.allowsAlphaSplitting;
         }
         if (!this.m_AndroidETC2FallbackOverrideIsDifferent)
         {
             platformTextureSettings.androidETC2FallbackOverride = this.m_PlatformSettings.androidETC2FallbackOverride;
         }
         textureImporter.SetPlatformTextureSettings(platformTextureSettings);
     }
 }
    static void ClearPlatformOverrides(string platformName, TextureImporter importer)
    {
        //Workaround: without this AssetDatabase.ImportAsset() not working
        importer.SetPlatformTextureSettings(platformName, 0, 0);

        importer.ClearPlatformTextureSettings(platformName);
    }
示例#5
0
    /// <summary>
    /// 设置图片 样式
    /// </summary>
    /// <param name="iOSFroamt"></param>
    /// <param name="AndroidFroamt"></param>
    static void SettingTexture(TextureImporterFormat iOSFroamt, TextureImporterFormat?AndroidFroamt = null)
    {
        if (null == AndroidFroamt)
        {
            AndroidFroamt = iOSFroamt;
        }
        List <string> fileList = new List <string>();

        /// 遍历 目录 操作
        if (null != Selection.objects)
        {
            for (int index = 0; index < Selection.objects.Length; index++)
            {
                if (null != Selection.objects[index])
                {
                    string path = string.Format("{0}/../{1}", Application.dataPath, AssetDatabase.GetAssetPath(Selection.objects[index]));
                    if (System.IO.Directory.Exists(path))
                    {
                        EditorSearchFile.SearchPath(path, fileList, "");
                    }
                    else
                    {
                        fileList.Add(path);
                    }
                }
            }
        }
        for (int index = 0; index < fileList.Count; index++)
        {
            string path = fileList[index];
            while (path.LastIndexOf("Assets/", System.StringComparison.Ordinal) != 0 && path.LastIndexOf("Assets/", System.StringComparison.Ordinal) != -1)
            {
                path = path.Substring(path.LastIndexOf("Assets/", System.StringComparison.Ordinal));
            }
            UnityEditor.TextureImporter importer = UnityEditor.TextureImporter.GetAtPath(path) as UnityEditor.TextureImporter;
            if (null == importer)
            {
                continue;
            }
            importer.mipmapEnabled = false;
            /// 读取
            TextureImporterPlatformSettings iOS     = importer.GetPlatformTextureSettings("iPhone");
            TextureImporterPlatformSettings Android = importer.GetPlatformTextureSettings("Android");
            /// 重写 设成 true
            Android.overridden           = iOS.overridden = true;
            importer.textureType         = TextureImporterType.Sprite;
            importer.alphaSource         = TextureImporterAlphaSource.FromInput;
            importer.alphaIsTransparency = true;
            importer.npotScale           = TextureImporterNPOTScale.None;
            /// 类型设置
            Android.format = (TextureImporterFormat)AndroidFroamt;
            iOS.format     = iOSFroamt;
            /// 赋值
            importer.SetPlatformTextureSettings(iOS);
            importer.SetPlatformTextureSettings(Android);
            /// LOG
            Debug.Log(string.Format("Setting Texture : [ Android = {1}, iOS = {2} ]{0}", path, AndroidFroamt, iOSFroamt));
            /// 保存
            importer.SaveAndReimport();
        }
    }
示例#6
0
    //把UI图片设置为只读,减少内存占用
    public void OnPreprocessTexture()
    {
        UnityEditor.TextureImporter importer = this.assetImporter as UnityEditor.TextureImporter;
        if (importer == null)
        {
            return;
        }
        var andSettings = new TextureImporterPlatformSettings();
        var iosSettings = new TextureImporterPlatformSettings();

        andSettings.name               = "Android";
        iosSettings.name               = "iPhone";
        andSettings.overridden         = true;
        iosSettings.overridden         = true;
        andSettings.compressionQuality = iosSettings.compressionQuality = 50;

        andSettings.format = TextureImporterFormat.ETC2_RGBA8;
        andSettings.androidETC2FallbackOverride = AndroidETC2FallbackOverride.Quality32Bit;
        iosSettings.format         = TextureImporterFormat.ASTC_6x6;
        andSettings.maxTextureSize = iosSettings.maxTextureSize = 1024;//NOTE 如果有特殊需求可通过配置修改

        importer.SetPlatformTextureSettings(andSettings);
        importer.SetPlatformTextureSettings(iosSettings);

        var rootDir = importer.assetPath.Split('/')[1];

        if (rootDir == KEngineDef.ResourcesEditDir)
        {
            if (importer.isReadable)
            {
                importer.isReadable = false;
            }

            if (importer.assetPath.StartsWith(KEngineDef.UIPath))
            {
                if (assetPath.Contains("Fonts"))
                {
                    importer.textureType = TextureImporterType.Default;
                }
                else
                {
                    importer.textureType = TextureImporterType.Sprite;
                }

                importer.mipmapEnabled = false;
                //NOTE 根据项目的实际情况,是把同一种类所有icon打到一个ab中,还是每个icon打成一个ab
            }
            else if (importer.assetPath.Contains("Character"))
            {
                if (!(importer.assetPath.Contains("Character/Hero") || importer.assetPath.Contains("Character/Hair")))
                {
                    importer.textureType   = TextureImporterType.Default;
                    importer.mipmapEnabled = false;
                }
            }
            else if (importer.assetPath.Contains(".exr"))
            {
                //Debug.Log("lightmap settings: " + importer.assetPath);
                importer.textureType = TextureImporterType.Lightmap;
#if UNITY_2018_3_OR_NEWER
                importer.textureCompression = TextureImporterCompression.Uncompressed;
                var ftm = importer.GetDefaultPlatformTextureSettings();
                ftm.format = TextureImporterFormat.RGBA32;
                importer.SetPlatformTextureSettings(ftm);
#else
                importer.textureFormat = TextureImporterFormat.AutomaticTruecolor;
#endif
                importer.wrapMode = TextureWrapMode.Clamp;
                //importer.mipmapEnabled = false;
            }
        }
        else
        {
            if (importer.assetPath.Contains("Editor/GameTools/XSceneTool/MapImages"))
            {
                importer.textureType   = TextureImporterType.Default;
                importer.mipmapEnabled = false;
                importer.npotScale     = TextureImporterNPOTScale.None;
                if (!importer.isReadable)
                {
                    importer.isReadable = true;
                }
            }
        }
    }