Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

Texture2D.PackTextures

Объявление

public Rect[] PackTextures(Texture2D[] textures, int padding, int maximumAtlasSize, bool makeNoLongerReadable);

Параметры

textures Массив текстур для упаковки в атлас.
padding Заполнение в пикселях между упакованными текстурами.
maximumAtlasSize Максимальный размер результирующей текстуры.
makeNoLongerReadable Должна ли текстура быть помечена как нечитаемая?

Возвращает

Rect[] Массив клетчатки, содержащий УФ-координаты в атласе для каждой входной текстуры, или нуль, если упаковка не удалялась.

Описание

Объединяет несколько текстур в атлас текстур.

Эта функция заменит текущую текстуру атласом, созданным из предоставленных текстур. Размер, формат и мипмапы любой из текстур могут измениться после упаковки.

Результирующий атлас текстур будет иметь размер, необходимый для размещения всех входных текстур, но не более maximumAtlasSize в каждое измерение. Если исходные текстуры не помещаются в атлас текстур нужного размера, они будут уменьшены до нужного размера.

Если вы сжали все входные текстуры и соблюдены следующие условия, Unity также сжимает выходной атлас:

  • Все входные текстуры относятся к одному сжатому типу или представляют собой смесь совместимых типов.
  • padding равен нулю, или Все входные текстуры не имеют мипмапов

Если какое-либо из входных изображений имеет мип-карты и значение отступа больше нуля, текстура атласа несжатая. Это связано с ограничениями выравнивания сжатых данных. Если вы не сжали одну или несколько входных текстур, атлас останется в несжатом формате RGBA32. Если атлас текстуры остается сжатым и имеет значение заполнения больше нуля, значение заполнения округляется до следующего кратного четырем. Это происходит из-за ограничений выравнивания сжатых данных.

Это краткий список сжатых форматов. Вы можете найти полный список в TextureFormat:

  • ETC
  • ETC2
  • EAC
  • DXT
  • ASTC
  • PVRTC
  • Вы можете смешивать эти типы в атласе, где они остаются сжатыми:

    Если ни у одной из входных текстур нет мип-карт, то и в атласе нет мип-карт.

    Если makeNoLongerReadable имеет значение true, текстура будет помечена как нечитаемая, а память будет освобождена после загрузки в хранилище. ГПУ. По умолчанию makeNoLongerReadable имеет значение false.

    using UnityEngine; public class Example : MonoBehaviour { // Исходники текстур. Texture2D[] atlasTextures; // Прямоугольники для отдельных текстур атласа. Rect[] rects; void Start() { // Упакуйте отдельные текстуры в минимально возможное пространство, // оставляя зазор в два пикселя между их краями. Texture2D atlas = new Texture2D(8192, 8192); rects = atlas.PackTextures(atlasTextures, 2, 8192); } }
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3