コード例 #1
0
    public static void CreateAndSaveToDisk()
    {
        Packer.SelectedPolicy             = typeof(CustomPackerPolicy).Name;
        CustomPackerPolicy.forceIOSOpaque = true;
        Packer.RebuildAtlasCacheIfNeeded(BuildTarget.iOS, true, Packer.Execution.ForceRegroup);

        Dictionary <string, Texture2D> atlasTextures = CreateAlphaAtlasTexture();

        string basePath = Path.Combine(Application.dataPath, AlphaAtlasManager.TEXTURE_ALPHA_ATLAS_PATH);

        if (!Directory.Exists(basePath))
        {
            Directory.CreateDirectory(basePath);
        }

        foreach (var pair in atlasTextures)
        {
            string outPath = Path.Combine(basePath, pair.Key + "_alpha.png");
            File.WriteAllBytes(outPath, pair.Value.EncodeToPNG());
        }

        AlphaAtlasManager atlasConfig = ScriptableObject.CreateInstance <AlphaAtlasManager>();

        atlasConfig.names = new List <string>(atlasTextures.Keys);
        AssetDatabase.CreateAsset(atlasConfig, Path.Combine("Assets/" + AlphaAtlasManager.TEXTURE_ALPHA_ATLAS_PATH, "AlphaAtlasConfig.asset"));
        AssetDatabase.SaveAssets();
        AssetDatabase.Refresh();
    }
コード例 #2
0
        protected override void UpdateMaterial()
        {
            base.UpdateMaterial();

            Texture2D alphaTex = AlphaAtlasManager.GetInstance().GetAlphaTexture(overrideSprite);

            if (alphaTex != null)
            {
                canvasRenderer.SetAlphaTexture(alphaTex);
            }
        }
コード例 #3
0
 public static AlphaAtlasManager GetInstance()
 {
     if (m_Instance == null)
     {
         m_Instance = LoadAsset <AlphaAtlasManager>("AlphaAtlasConfig");
         if (m_Instance == null)
         {
             Debug.Log("AlphaAtlasConfig.asset No Find!");
             m_Instance = ScriptableObject.CreateInstance <AlphaAtlasManager>();
         }
         m_Instance.OnAfterDeserialize();
     }
     return(m_Instance);
 }