Описание
Добавьте эту функцию в подкласс, чтобы получать уведомление непосредственно перед завершением импорта текстуры кубической карты.
Обратите внимание, что вам следует избегать изменения настроек TextureImporter таким образом, поскольку это не повлияет на текущую импортируемую текстуру, но будет применяться при следующем импорте текстуры. Такое поведение недетерминировано и поэтому нежелательно.
using UnityEditor;
using UnityEngine;
using System.Collections;
// Обрабатывает все кубические карты, помещенные в папку
// Здесь мы просто уменьшаем вдвое значения текселей
public class ProcessCubemap : AssetPostprocessor
{
void OnPostprocessCubemap(Cubemap texture)
{
string lowerCaseAssetPath = assetPath.ToLower();
if (lowerCaseAssetPath.IndexOf("/postprocessedcubemaps/") == -1)
return;
for (int m = 0; m < texture.mipmapCount; m++)
{
for (int face = 0; face < 6; face++)
{
CubemapFace f = (CubemapFace)face;
Color[] c = texture.GetPixels(f, m);
for (int i = 0; i < c.Length; i++)
{
c[i].r = c[i].r * 0.5f;
c[i].g = c[i].g * 0.5f;
c[i].b = c[i].b * 0.5f;
}
texture.SetPixels(c, f, m);
}
// Вместо того, чтобы устанавливать пиксели для каждого уровня MIP-карты, вы также можете
// изменяем только пиксели на самом высоком мип-уровне. А затем просто используйте
// текстура.Apply(true); для создания более низких мип-уровней.
}
}
}