#UI-GD Все, у чего есть пиксели, это текстуры После внесения изменений, нужно не забывать сохранять настройки «Apply» ![(Texture 2D) Import settings](images/(Texture%202D)%20Import%20settings.png) <br> **Texture type** Указать Default - если текстура предназначена для 3D-моделей Указать Sprite - если текстура предназначена для UI или 2D-объектов на сцене В 95% случаях достаточно этих двух вариантов. ### Sprite Mode **Sprite Mode** "Sprite Mode" – это настройка для импорта изображений в Unity, которая определяет, как изображение будет использоваться. Есть три основных режима: 1. **Single:** Это стандартный режим для большинства спрайтов. В этом режиме каждое изображение представляет собой отдельный спрайт. Это идеально подходит для отдельных изображений или персонажей, которые не требуют анимации. 2. **Multiple:** В этом режиме вы можете нарезать изображение на несколько спрайтов. Это полезно для изображений, содержащих несколько объектов или кадров анимации. После выбора этого режима вы можете открыть редактор нарезки (Sprite Editor) и настроить, как изображение будет разрезано на спрайты. 3. **Polygon:** Этот режим позволяет вам создать спрайт с произвольной формой вместо прямоугольника. Это может быть полезно для сложных форм, которые не подходят для прямоугольных спрайтов. Заметьте, что "Sprite Mode" доступен только если "Texture Type" установлен на "Sprite (2D and UI)". <br> **Mesh Type** <br> <u>Ответ GPT4:</u> Mesh Type - это настройка, которая определяет форму меша для спрайта. Меш (mesh) – это структура, состоящая из вершин, ребер и граней, которая определяет форму 3D-объекта в компьютерной графике. Но в контексте 2D-спрайтов, меш определяет, как спрайт будет рендериться и деформироваться. В Unity есть два основных типа мешей для спрайтов: 1. **Tight**: Этот тип создает меш, который тесно облегает непрозрачную часть спрайта. Это может привести к более оптимальному использованию ресурсов при рендеринге, так как прозрачные части спрайта не обрабатываются. Однако этот метод может быть более ресурсоемким для сложных спрайтов, поскольку он требует более сложной формы меша. 2. **Full Rect**: Этот тип создает прямоугольный меш, который охватывает весь спрайт, включая прозрачные области. Это может быть менее оптимально для рендеринга, но оно может быть более эффективно с точки зрения производительности для сложных спрайтов, так как форма меша проще. Выбор типа меша зависит от конкретных требований вашего проекта и способа, которым вы планируете использовать спрайты. <u>Ответ Олега:</u> Каждый Sprite имеет свой mesh. В данном свойстве мы можем выбрать как именно будет генерироваться mesh Tight - Если текстура расположена на прозрачном фоне, то Данна опция урежет у текстуры неиспользуемое пространство фона. Full Rect - Ничего урезать не будет. Рекомендуется устанавливать Tight ##### Extrude Edges "Extrude Edges" - это параметр, который доступен, когда вы используете "Texture Type" "Sprite" и "Mesh Type" "Tight". Этот параметр добавляет дополнительные пиксели вокруг спрайта при создании меша (сетки вершин, которые определяют форму спрайта). Цель этого параметра - предотвратить "просветы" или "щели" между спрайтами, когда они отображаются вместе. Это может произойти из-за особенностей рендеринга и фильтрации текстур, особенно при масштабировании или вращении спрайтов. Например, вы можете иметь тайловый набор спрайтов для создания уровня, и вы не хотите, чтобы между тайлами были видны щели. Установка параметра "Extrude Edges" на небольшое значение (например, 1 или 2) добавляет небольшую "границу" вокруг каждого спрайта, заполняя любые возможные просветы между тайлами. Это значение определяет количество пикселей, которые будут добавлены к каждой стороне спрайта. Будьте осторожны при установке больших значений для этого параметра, так как это может негативно сказаться на производительности и использовании памяти, особенно если у вас много больших спрайтов. <br> **Pixels Per Unit** <u>Ответ GPT4:</u> Pixels Per Unit (Пикселей на единицу) - это значение, которое определяет, сколько пикселей изображения соответствует одной единице в мире Unity. Это важно для определения размера импортированного спрайта в Unity. Допустим, у вас есть игра платформер, где ваш главный персонаж имеет размер 1x1 единицы в мире игры. Это ваша базовая единица измерения в игре. Вы хотите, чтобы ваши текстуры были соотносимыми с этой единицей измерения. Если у вас есть текстура персонажа размером 100x100 пикселей, вы можете установить Pixels Per Unit (PPI) на 100. Таким образом, ваша текстура будет точно соответствовать размеру вашего персонажа в игре. Теперь допустим, у вас есть текстура для здания, которое должно быть в 4 раза выше вашего персонажа. Если размер вашей текстуры здания 400x400 пикселей, вы также установите PPI на 100 для этой текстуры. Это означает, что ваше здание будет иметь размер 4x4 единицы в мире игры, что в 4 раза больше, чем размер вашего персонажа, как и ожидалось. Таким образом, Pixels Per Unit позволяет вам контролировать, как ваши текстуры масштабируются относительно мира игры. Это особенно полезно, когда у вас есть множество текстур разного размера, но вы хотите, чтобы они все были соотносимыми в мире игры. <br> <u>Ответ Олега:</u> Количество пикселей на один юнит. Олег рекомендует не трогать значение. По умолчанию 100. <br> **Generate Physics Shape** Используется в 2D-моделях. Не нужна в UI ### Sprite Editor Чтобы не подготавливать несколько текстур одной кнопки разных размеров, можно загрузить только одну текстуру и грамотно ее растягивать с помощью специального инструмента. Подход называется [9-slicing Sprites](https://docs.unity3d.com/Manual/9SliceSprites.html). Для такого подхода используется инструмент Sprite editor. <br> ### Advanced **sRGB (Color Texture)** Формат хранения цветов текстуры. По умолчанию, стоит галка. <br> **Alpha Source** Input Texture Alpha - (по умолчанию) - параметр отображает прозрачность в текстуре, если она там есть. From Gray Scale - Генерирует прозрачность сам. Чем темнее пиксель, тем больше прозрачности в нем. <br> **Ignore PNG file gamma** Олег не использует <br> **Read/Write** Возможность читать/изменять текстуру из кода
 По умолчанию выключена. <br> **Generate Mip Maps** Генерирует уменьшенные версии текстур, которые используются, когда текстура очень мала на экране. Для UI-интерфейса данная опция не нужна По умолчанию включена. **Border Mip Maps** **Mip Map Filtering** **Mip Maps Preserve Coverage** **Fadeout Mip Maps** Этими свойствами Олег не пользовался <br> **Filter Mode** "Filter Mode" это настройка в Unity, которая определяет, как текстура отображается, когда она растягивается (когда пиксели текстуры больше или меньше пикселей экрана). Существует три режима фильтрации: 1. **Point (нет фильтрации):** Этот режим также называют "Nearest-neighbor" фильтрацией. Он просто выбирает ближайший пиксель из текстуры. При увеличении это создает "пиксельный" или "блочный" вид, поскольку нет сглаживания между пикселями. Это может быть полезно для стилизованного, пиксельного вида в играх. 2. **Bilinear:** Этот режим сглаживает между четырьмя ближайшими пикселями. При увеличении это создает более сглаженный, но немного размытый вид. Это наиболее часто используемый режим фильтрации в играх. 3. **Trilinear:** Этот режим похож на билинейный, но также сглаживает между двумя mipmap уровнями. "Mipmaps" это меньшие копии текстуры, которые используются при отдалении от текстуры, чтобы предотвратить проблемы с мерцанием и производительностью. Трилинейная фильтрация создает самые сглаженные результаты, но требует немного больше вычислительных ресурсов. <br> <br> **Wrap Mode** **Aniso Level** Олег не пользуется <br> <br> Настройки ниже не будут учитываться, если текстура находится в атласе (Atlas) **Max Size** Задаем размер текстуре. По умолчанию ставится очень большое значение (2048). Нужно установить приемлемое значение. <br> **Resize Algorithm** Алгоритм для уменьшения масштаба текстуры, когда размеры текстуры превышают указанный Max Size. Mitchell - стоит по умолчанию. Возможно, работает быстрее. Bilinear - Возможно, работает дольше. Может сохранить больше мелких деталей. <br> **Format** Можно указать из выпадающего списка формат текстуры. По умолчанию, автоматически. **Compression** Можно выбрать тип компрессии. Насколько сильно будет сжата текстура. Выбор этих трех опций не влияет на постоянный размер текстуры. Чем больше качество сжатия, тем дольше будет распаковка в ОЗУ при запуске игры. High Quality - Самое высокое качество сжатия. Олег рекомендует ставить данный параметр. **Use Crunch Compression** Сжатие с потерей качества. [Официальная документация](https://docs.unity3d.com/2021.3/Documentation/Manual/class-TextureImporter.html) [Вторая страница](https://docs.unity3d.com/2021.3/Documentation/Manual/TextureTypes.html)