Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
Файловая система
Введение
Файловая система управляет тем, как хранятся ресурсы и как к ним осуществляется доступ. Хорошо продуманная файловая система также позволяет нескольким разработчикам редактировать одни и те же исходные файлы и ресурсы во время совместной работы. Godot хранит всю библиотеку ресурсов в виде файлов в своей файловой системе.
Реализация
Файловая система хранит ресурсы на диске. Все, что угодно, от скриптов до сцен или изображений PNG, являются ресурсом для движка. Если ресурс содержит свойства, которые ссылаются на другие ресурсы на диске, пути к ним также включаются. Если ресурс имеет встроенные суб-ресурсы, то он сохраняется в одном файле вместе со всеми включенными в комплект суб-ресурсами. Например, ресурс шрифтов часто поставляется в комплекте с текстурами шрифтов.
Файловая система Godot избегает использования файлов метаданных. Существующие менеджеры ресурсов и системы контроля версий лучше всего, что мы можем реализовать, поэтому Godot старается максимально эффективно взаимодействовать с Subversion, Git, Mercurial и другими.
Пример содержимого файловой системы:
/project.godot
/enemy/enemy.tscn
/enemy/enemy.gd
/enemy/enemysprite.png
/player/player.gd
project.godot
Файл project.godot - это файл описания проекта, который всегда находится в корне самого проекта. Фактически, его местоположение определяет то, где находится корень. Это первый файл, который Godot ищет при открытии проекта.
Этот файл содержит конфигурацию проекта в виде простого текста в формате win.ini. Даже пустой project.godot может функционировать как базовое определение пустого проекта.
Разделитель путей
Godot поддерживает только / в качестве разделителя путей. Это делается по причинам переносимости. Все операционные системы поддерживают это, даже Windows, поэтому путь C:\project\project.godot должен быть напечатан как C:/project/project.godot.
Путь к ресурсу
При доступе к ресурсам, использование структуры файловой системы ОС может быть громоздким и непортируемым. Для решения этой проблемы был создан специальный путь res://.
Путь res:// всегда будет указывать на корень проекта (где расположен project.godot, поэтому путь res://project.godot всегда действителен).
Эта файловая система читает-записывает только при локальном запуске проекта из редактора. При экспорте или при работе на различных устройствах (таких как телефоны или консоли, или при запуске с DVD) файловая система станет доступна только для чтения и запись больше не будет разрешена.
Путь пользователя
Запись на диск все еще необходима для различных задач, таких как сохранение игрового состояния или загрузка пакетов контента. Для этого движок обеспечивает специальный путь user://, который всегда доступен для записи. Этот путь меняется в зависимости от операционной системы, на которой запущен проект. Расположение локального пути объясняется в разделе Пути файлов в проектах Godot.
Родительская файловая система
В качестве альтернативы можно также использовать пути родительской файловой системы, но этого не рекомендуется делать для выпущенного продукта, так как не гарантируется работа этих путей на всех платформах. Однако использование путей родительской файловой системы может быть полезно при написании средств разработки в Godot.
Недостатки
Такая структура файловой системы имеет ряд недостатков. Первый заключается в том, что перемещение ресурсов (переименование или перемещение из одного пути в другой внутри проекта) нарушает существующие ссылки на эти ресурсы. Эти ссылки придётся переопределить, чтобы они указывали на новое местоположение ресурса.
To avoid this, do all your move, delete and rename operations from within Godot, on the FileSystem dock. When you delete files in Godot, it will prompt you with a confirmation dialog listing all selected files and any scenes that depend on those files. Never move assets from outside Godot, or dependencies will have to be fixed manually (Godot detects this and helps you fix them anyway, but why go the hard route?).
Во-вторых, имена файлов и путей в Windows и MacOS не зависят от регистра. Если разработчик, работающий в нечувствительной к регистру родительской файловой системе, сохраняет актив как myfile.PNG, но затем ссылается на него как на "myfile.png", он будет прекрасно работать на их платформе, но не на других платформах, таких как Linux, Android и т.д. Это может также применяться к экспортируемым двоичным файлам, которые используют сжатый пакет для хранения всех файлов.
Рекомендуется, чтобы ваша команда четко определила правила именования файлов при работе с Godot. Один из самых надежных способов — использовать имена файлов и пути только строчными буквами.