Ресурсы и локализация
Храните ресурсы по назначению:
MyModule/├── images/│ ├── Icon.png│ └── Hud/Background.png├── sounds/│ └── Alert.ogg├── ui/│ ├── Panel.uxml│ └── Panel.uss└── localization.csvИзображения
Заголовок раздела «Изображения»Поддерживаются PNG, JPG и JPEG. В Lua путь обычно указывается относительно images:
local background = Textures:GetTexture("Hud/Background.png")
if background == nil then print("Background was not loaded")endИспользуйте точный регистр, расширение и прямые слеши. Изображения больше 4096 × 4096 или 10 MiB загрузчик пропускает.
Поддерживаются WAV, MP3 и OGG:
local alert = Sounds:GetSound("Alert.ogg")
if alert ~= nil then Sounds:PlaySound2D(alert, 0.7, 1)endЗагружайте ресурс один раз, а не при каждом кадре или событии.
UXML и USS
Заголовок раздела «UXML и USS»Разметку и стили храните в ui. UXML может подключить соседний USS:
<ui:UXML xmlns:ui="UnityEngine.UIElements"> <Style src="./Panel.uss" /> <ui:VisualElement name="Root" class="panel" /></ui:UXML>Путь к изображению из ui/Panel.uss будет относительным к самому USS:
.panel { background-image: url("../images/Hud/Background.png");}Локализация
Заголовок раздела «Локализация»Корневой localization.csv использует ; как разделитель:
Keys;English (United States);RussianPanelTitle;Status;СостояниеEnabled;Enabled;ВключеноПолучение строки в Lua:
local title = Localization:GetTranslation("PanelTitle")Если перевод текущего языка пуст, используется английское значение. Если ключ отсутствует полностью, возвращается сам ключ.
Иконки описания
Заголовок раздела «Иконки описания»images/Icon.png— иконка модуля;images/DescriptionImage.png— крупное изображение описания.
Перед публикацией
Заголовок раздела «Перед публикацией»- удалите неиспользуемые исходники изображений и звука;
- проверьте пути с тем же регистром, что у файлов;
- заполните английскую колонку каждого ключа;
- убедитесь, что суммарный размер не превышает лимит модуля;
- проверьте модуль после копирования в чистую папку.
Справочник: Texture, Audio, Localization и UXML.