Перейти к содержимому

Ресурсы и локализация

Храните ресурсы по назначению:

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

Загружайте ресурс один раз, а не при каждом кадре или событии.

Разметку и стили храните в 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);Russian
PanelTitle;Status;Состояние
Enabled;Enabled;Включено

Получение строки в Lua:

local title = Localization:GetTranslation("PanelTitle")

Если перевод текущего языка пуст, используется английское значение. Если ключ отсутствует полностью, возвращается сам ключ.

  • images/Icon.png — иконка модуля;
  • images/DescriptionImage.png — крупное изображение описания.
  • удалите неиспользуемые исходники изображений и звука;
  • проверьте пути с тем же регистром, что у файлов;
  • заполните английскую колонку каждого ключа;
  • убедитесь, что суммарный размер не превышает лимит модуля;
  • проверьте модуль после копирования в чистую папку.

Справочник: Texture, Audio, Localization и UXML.