private bool OnBeforeSaveTexture(TextureMeta id) { if (id.TargetIsRenderTexture()) { id.RenderTexture_To_Texture2D(); } var tex = id.texture2D; if (id.preserveTransparency && !tex.TextureHasAlpha()) { if (_loopLock.Unlocked) { using (_loopLock.Lock()) { //ChangeTexture(id.NewTexture2D()); //id.texture2D.name = id.texture2D.name + "_A"; Debug.Log("Old Texture had no Alpha channel, creating new"); string tname = id.texture2D.name + "_A"; id.texture2D = id.texture2D.CreatePngSameDirectory(tname); id.saveName = tname; id.texture2D.CopyImportSettingFrom(tex).Reimport_IfNotReadale(); SetTextureOnMaterial(id); } } return(false); } id.SetAlphaSavePixel(); return(true); }