Шляхи до файлів у проектах Godot

На цій сторінці пояснюється, як працюють шляхи до файлів у проектах Godot. Ви дізнаєтеся, як отримати доступ до шляхів у ваших проектах за допомогою приміток res:// і user://, і де Godot зберігає файли проектів і редакторів у ваших системах і системах ваших користувачів.

Роздільники шляху

Для підтримки якомога більшої кількості платформ, Godot використовує роздільники шляхів у стилі UNIX (/). Вони працюють на всіх платформах, включаючи Windows.

Замість того, щоб писати шляхи в стилі C:\Projects\Game, в Godot вам слід написати C:/Projects/Game.

Роздільники шляхів у стилі Windows (зворотний слеш \) також підтримуються в деяких методах, пов’язаних із шляхом, але їх потрібно подвоювати (\\), оскільки одне \ зазвичай використовується для виділення символів з особливим значенням.

Це дає змогу працювати зі шляхами, які повертаються іншими програмами Windows. Ми все ж рекомендуємо використовувати лише скісні риски у вашому коді, щоб гарантувати, що все працюватиме належним чином.

Доступ до файлів у теці проекту (res://)

Godot вважає, що проект існує в будь-якій теці, яка містить текстовий файл project.godot, навіть якщо файл пустий. Тека, яка містить цей файл, є кореневою текою проекту.

Ви можете отримати доступ до будь-якого файлу відносно кореневої теки, написавши шлях, що починаються з приставки res://, яка означає ресурси. Наприклад, ви можете отримати доступ до файлу зображення character.png, розташованого в кореневій папці проекту з коду за таким шляхом: res://some_texture.png.

Доступ до постійних даних користувача (user://)

Щоб зберігати постійні файли даних, наприклад збереження, або параметри, гри, потрібно використовувати user:// замість res://. Це пов'язано з тим, що під час запуску гри файлова система проекту, швидше за все, буде доступна лише для читання.

Приставка user:// вказує на інший каталог на пристрої користувача. На відміну від res://, каталог, на який вказує user://, створюється автоматично, і гарантовано доступний для запису навіть в експортованих проектах.

Розташування теки user:// залежить від того, що встановлено у Параметрах проекту:

  • За замовчуванням, тека user:// створюється у шляху до даних редактора Godot у теці app_userdata/[project_name]. Це налаштування за замовчуванням, щоб прототипи та тестові проекти залишалися автономними у теці даних Godot.

  • Якщо у Параметрах проекту увімкнено application/config/use_custom_user_dir, то буде створено теку user:// поруч зі шляхом до даних редактора Godot , тобто у стандартному розташуванні для даних програми.

    • За замовчуванням назву теки буде виведено з назви проекту, але її можна додатково налаштувати за допомогою application/config/custom_user_dir_name. Цей шлях може містити роздільники шляхів, тому ви можете використовувати його, наприклад, для групування проектів певної студії за структурою Studio Name/Game Name.

На настільних платформах фактичні шляхи каталогів для user:// є:

Тип

Розташування

Типовий

Windows: %APPDATA%\Godot\app_userdata\[project_name]
macOS: ~/Library/Application Support/Godot/app_userdata/[project_name]
Linux: ~/.local/share/godot/app_userdata/[project_name]

Власний каталог

Windows: %APPDATA%\[project_name]
macOS: ~/Library/Application Support/[project_name]
Linux: ~/.local/share/[project_name]

Власний каталог і ім'я

Windows: %APPDATA%\[custom_user_dir_name]
macOS: ~/Library/Application Support/[custom_user_dir_name]
Linux: ~/.local/share/[custom_user_dir_name]

[project_name] базується на назві програми, визначеній у параметрах проекту, але ви можете змінити її на основі кожної платформи, використовуючи теги функцій.

На мобільних платформах цей шлях є унікальним для проекту і недоступний іншим додаткам з міркувань безпеки.

При експорті на HTML5, user:// буде посилатися на віртуальну файлову систему, що зберігається на пристрої через IndexedDB. (Взаємодія з основною файловою системою все ще може здійснюватися через синглтон JavaScript.)

Перетворення шляхів на абсолютні або "локальні" шляхи

Ви можете використовувати ProjectSettings.globalize_path() для перетворення "локального" шляху на кшталт res://path/to/file.txt в абсолютний шлях ОС. Наприклад, ProjectSettings.globalize_path() можна використовувати для відкриття "локальних" шляхів у файловому менеджері ОС за допомогою OS.shell_open(), оскільки він приймає тільки власні шляхи ОС.

Щоб перетворити абсолютний шлях ОС на "локальний", що починається з res:// чи user://, використовуйте ProjectSettings.localize_path(). Це працює лише для абсолютних шляхів, які вказують на файли або теки в корені вашого проекту або теках user://.

Шляхи до даних редактора

Редактор використовує різні шляхи для даних редактора, параметрів редактора та кешу, залежно від платформи. За замовчуванням ці шляхи такі:

Тип

Розташування

Дані редактора

Windows: %APPDATA%\Godot\
macOS: ~/Library/Application Support/Godot/
Linux: ~/.local/share/godot/

Параметри редактора

Windows: %APPDATA%\Godot\
macOS: ~/Library/Application Support/Godot/
Linux: ~/.config/godot/

Кеш

Windows: %TEMP%\Godot\
macOS: ~/Library/Caches/Godot/
Linux: ~/.cache/godot/
  • Дані редактора містять шаблони експорту та дані для конкретних проектів.

  • Параметри редактора містять основний конфігураційний файл налаштувань редактора, а також різні інші користувацькі налаштування (макети редактора, профілі функцій, шаблони скриптів тощо).

  • Кеш містить дані, згенеровані редактором або тимчасово збережені. Його можна безпечно очистити, коли Godot закритий.

Godot відповідає `специфікації базового каталогу XDG<https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html>`__ на всіх платформах. Ви можете перевизначити змінні середовища після специфікації, щоб змінити шляхи даних редактора і проекту.

Примітка

Якщо ви використовуєте `Godot, упакований як Flatpak<https://flathub.org/apps/details/org.godotengine.Godot>`__, шляхи даних редактора будуть розташовані в вкладених папках у ~/.var/app/org.godotengine.Godot/.

Автономний режим

Якщо ви створите файл під назвою ._sc_, чи _sc_ в тому ж каталозі, що і бінарник редактора (або в MacOS/Contents/ для пакета .app редактора macOS), Godot увімкне автономний режим. Цей режим змушує Godot записувати всі дані, параметри та кеш в каталог під назвою editor_data/ в тому ж каталозі, що і бінарник редактора. Ви можете використовувати його для створення портативного інсталятора редактора.

Випуск Steam Godot використовує автономний режим за замовчуванням.

Примітка

Автономний режим ще не підтримується в експортованих проектах. Для читання та запису файлів відносно шляху виконання використовуйте OS.get_executable_path(). Запримітьте, що запис файлів у шляху виконання працює тільки в тому випадку, якщо виконуваний файл розміщений в придатному для запису місці (тобто не Program Files або іншому каталозі, який доступний лише для читання для звичайних користувачів).