Просто чтобы добавить к ответу Эндрю, есть третий (гораздо более медленный) способ сделать это без написания шейдера или нового дозатора. Просто используйте метод GetData для Texture2D, чтобы извлечь данные о пикселях, просмотрите их в цикле for, изменяя значения альфа-канала так, как вы хотите, а затем используйте SetData, чтобы вернуть их обратно. Это УЖАСНЫЙ способ сделать что-то, если вы постоянно меняете альфа-значения, но похоже, что вы просто хотите изменить альфа-значения один раз, так что у вас просто будут дополнительные издержки при загрузке программы, и после этого все должно работать гладко. Кроме того, если вы делаете это только с небольшим количеством изображений, разница в производительности практически незначительна. Вот некоторый код для начала работы:
Color[] texColors = new Color[myTexture.Width * myTexture.Height];
myTexture.GetData<Color>(texColors);
for(int i = 0; i < texColors.Length; i++)
{
//change alpha values the way you want
}
myTexture.SetData<Color>(texColors);