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(); }
protected override void UpdateMaterial() { base.UpdateMaterial(); Texture2D alphaTex = AlphaAtlasManager.GetInstance().GetAlphaTexture(overrideSprite); if (alphaTex != null) { canvasRenderer.SetAlphaTexture(alphaTex); } }
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); }