万年素人からHackerへの道

万年素人がHackerになれるまで殴り書きするぜ。

  • ・資産運用おすすめ
    10万円は1000円くらい利益
    資産運用ブログ アセマネ
    • ・寄付お願いします
      YENTEN:YYzNPzdsZWqr5THWAdMrKDj7GT8ietDc2W
      BitZenny:ZfpUbVya8MWQkjjGJMjA7P9pPkqaLnwPWH
      c0ban:8KG95GXdEquNpPW8xJAJf7nn5kbimQ5wj1
      Skycoin:KMqcn7x8REwwzMHPi9fV9fbNwdofYAWKRo

    Unity Advent Calendar 2012 14日目 Title:「NGUIのAtlas Maker設定のちょいハック」

    URL: http://atnd.org/events/34621

    今日も僕です。

    NGUI使ってる方には、お馴染みのNGUIのAtlas Maker。

    名前通りAtlasを生成するツールです。

    このように、私のアイコンとBooのアイコンを入れてやってみます。

    しかし結果は、こうなりモバイルには容量が大きくなりメモリ食います。

    この設定を↓のようにしたくNGUI本体を少しいじります。

    UIAtlasMaker.csがこの本体ですが、保存は、NGUIEditorTools.csっぽいですね。

    ・NGUIEditorTools.cs
    MakeTextureAnAtlasメソッドが実際に該当します。

        static bool MakeTextureAnAtlas (string path, bool force)
        {
            if (string.IsNullOrEmpty(path)) return false;
            TextureImporter ti = AssetImporter.GetAtPath(path) as TextureImporter;
            if (ti == null) return false;
    
            TextureImporterSettings settings = new TextureImporterSettings();
            ti.ReadTextureSettings(settings);
    
            if (force ||
                settings.readable ||
                settings.maxTextureSize < 4096 ||
                settings.wrapMode != TextureWrapMode.Clamp ||
                settings.npotScale != TextureImporterNPOTScale.ToNearest)
            {
                //settings.mipmapEnabled = true;
                settings.readable = false;
                settings.maxTextureSize = 4096;
                settings.textureFormat = TextureImporterFormat.RGBA32;
    //            settings.filterMode = FilterMode.Trilinear;
                settings.filterMode = FilterMode.Bilinear;
    //            settings.aniso = 4;
                settings.aniso = 1;
                // add by shinriyo
                settings.mipmapEnabled = false;
                settings.ApplyTextureType(TextureImporterType.Advanced, true);
                
                    
                settings.wrapMode = TextureWrapMode.Clamp;
                settings.npotScale = TextureImporterNPOTScale.ToNearest;
                
                ti.SetTextureSettings(settings);
                AssetDatabase.ImportAsset(path, ImportAssetOptions.ForceUpdate);
            }
            return true;
        }
    

    こうやって変更してImportすると〜、テーレッテレー♪


    はい、できました。

    さらにTextureFormatをRGBA 32bitにしたいときは以下を追記
    Defaultで変わります

    settings.textureFormat = TextureImporterFormat.RGBA32;
    

    settings.textureFormat = TextureFormat.RGBA32;ではないので注意!

    次回、てか明日は何しようかな?