Где находятся файлы сохранений в Unity

Unity где лежат сохранения

Содержание статьи

Unity где лежат сохранения

Unity использует фиксированные системные каталоги для хранения данных, созданных приложением во время работы. Чаще всего разработчики работают с Application.persistentDataPath, поскольку этот путь гарантированно доступен для чтения и записи на всех поддерживаемых платформах. Знание точного расположения каталога помогает тестировать сохранения, отслеживать ошибки и управлять версиями файлов во время разработки.

Помимо пользовательских JSON или бинарных файлов, к сохранениям относится содержимое PlayerPrefs, которое Unity размещает по разным схемам в зависимости от платформы. Разработчикам важно учитывать, где именно создаются такие записи, чтобы корректно переносить данные между сборками, тестовыми устройствами и рабочими машинами.

Путь к сохранениям через Application.persistentDataPath на Windows

В среде Windows путь, возвращаемый Application.persistentDataPath, указывает на каталог в профиле пользователя: C:\Users\ИмяПользователя\AppData\LocalLow\ИмяКомпании\ИмяПриложения. Unity формирует его автоматически на основе значений Company Name и Product Name из настроек проекта. Любые файлы, созданные игрой через стандартные методы чтения и записи, будут размещены именно там.

Если проект предполагает перенос сохранений между устройствами, стоит создать собственный подкаталог внутри persistentDataPath (например, Saves) и хранить там все пользовательские файлы. Это облегчает экспорт, резервное копирование и анализ ошибок, связанных с несовместимостью форматов.

Расположение сохранений на macOS с использованием persistentDataPath

Расположение сохранений на macOS с использованием persistentDataPath

На macOS путь, возвращаемый Application.persistentDataPath, указывает на каталог внутри пользовательской библиотеки: /Users/ИмяПользователя/Library/Application Support/ИмяКомпании/ИмяПриложения. Unity создаёт эту структуру автоматически, опираясь на параметры Company Name и Product Name. В этот каталог попадают файлы, создаваемые через стандартные операции записи.

При разработке под macOS важно учитывать, что некоторые утилиты резервного копирования пропускают отдельные директории внутри Library. Чтобы упрощать перенос данных между машинами, рекомендуется хранить пользовательские файлы в одном подкаталоге, созданном внутри persistentDataPath, и документировать его структуру для команды.

Где искать файлы сохранений Unity на Android

Где искать файлы сохранений Unity на Android

Application.persistentDataPath на Android указывает на внутреннее хранилище приложения. Unity формирует путь на основе идентификатора пакета, поэтому каталог создаётся строго внутри области, доступной только этому приложению.

Базовый путь выглядит так:

  • /data/data/ИмяПакета/files – при доступе через ADB или рут-проводник;
  • /storage/emulated/0/Android/data/ИмяПакета/files – при наличии разрешения на работу с внешним хранилищем в старых версиях Android.

Для просмотра содержимого удобно использовать следующие команды:

  1. adb shell run-as ИмяПакета ls files – просмотр каталога без рута;
  2. adb pull /data/data/ИмяПакета/files – копирование файлов на ПК для анализа;

Чтобы упростить навигацию в каталоге, стоит размещать пользовательские данные в отдельных подпапках (например, saves, profiles). Это помогает отслеживать изменения после обновлений и быстро находить нужные файлы при тестировании на разных устройствах.

Папка сохранений Unity на iOS: структура и доступ

Папка сохранений Unity на iOS: структура и доступ

На iOS данные, записанные через Application.persistentDataPath, размещаются внутри песочницы приложения. Путь формируется автоматически и относится к пользовательской директории Documents или Library, в зависимости от того, как Unity определяет область для файлов.

Основные варианты расположения:

  • /var/mobile/Containers/Data/Application/UUID/Documents – файлы, доступные для резервного копирования;
  • /var/mobile/Containers/Data/Application/UUID/Library – данные, не предназначенные для резервного копирования и синхронизации.

UUID – уникальный идентификатор контейнера, меняющийся после переустановки приложения.

Для проверки содержимого удобно использовать:

  1. Проводник Xcode: Window → Devices and Simulators, выбор устройства и выгрузка контейнера приложения;
  2. Функцию adb-like доступа недоступно использовать напрямую, поэтому работа идёт только через инструменты Apple;

Чтобы упорядочить структуру, рекомендуется создавать вложённые каталоги внутри persistentDataPath: saves, userdata, cache. Такой подход облегчает анализ изменений между версиями, упрощает тестирование на симуляторе и снижает риск путаницы при переносе данных между сборками.

Места хранения сохранений при сборке под Linux

Места хранения сохранений при сборке под Linux

В Linux путь, возвращаемый Application.persistentDataPath, формируется внутри домашней директории пользователя. Unity создаёт каталог на основе названий компании и продукта, указанных в настройках проекта. Это позволяет хранить файлы отдельно от системных данных и упрощает перенос между профилями.

Чаще всего путь выглядит так:

Тип данных Путь
Основной каталог persistentDataPath /home/ИмяПользователя/.config/ИмяКомпании/ИмяПриложения
Альтернативная структура некоторых окружений ~/.local/share/ИмяКомпании/ИмяПриложения
Файлы PlayerPrefs ~/.config/unity3d/ИмяКомпании/ИмяПриложения

Для проверки содержимого удобно использовать терминал: ls -la для просмотра файлов, cat или jq для анализа JSON, а также создание отдельных подкаталогов внутри persistentDataPath для разных типов данных.

Если проект предусматривает несколько видов сохранений, рекомендуется разделить их по директориям, чтобы ускорить диагностику изменений между сборками и избежать смешивания временных и пользовательских файлов.

Использование PlayerPrefs: где Unity размещает данные на разных платформах

PlayerPrefs в Unity предназначены для хранения простых настроек и небольших объёмов данных. Местоположение этих файлов зависит от операционной системы, но Unity гарантирует доступность через стандартные API без указания конкретного пути.

На Windows:

Файлы хранятся в реестре пользователя: HKEY_CURRENT_USER\Software\ИмяКомпании\ИмяПриложения. Для отладки можно экспортировать ключи или использовать сторонние редакторы реестра.

На macOS:

PlayerPrefs сохраняются в бинарный файл: ~/Library/Preferences/ИмяКомпании.ИмяПриложения.plist. Файл доступен через Finder или терминал, его можно редактировать средствами Apple для тестирования значений.

На Linux:

Данные размещаются в конфигурационной директории: ~/.config/unity3d/ИмяКомпании/ИмяПриложения. Формат – текстовый или бинарный файл, его можно анализировать с помощью стандартных утилит командной строки.

На мобильных платформах:

  • Android – в SharedPreferences внутри внутреннего хранилища пакета приложения.
  • iOS – в NSUserDefaults, автоматически синхронизируемый с системой.

Рекомендуется структурировать использование PlayerPrefs только для небольших данных: уровни настроек, флаги прогресса или состояния интерфейса. Для сложных или больших сохранений лучше применять persistentDataPath с отдельными файлами.

Вопрос-ответ:

Как определить точный путь к файлам сохранений в Unity на Windows?

На Windows Unity помещает данные, записанные через Application.persistentDataPath, в каталог: C:\Users\ИмяПользователя\AppData\LocalLow\ИмяКомпании\ИмяПриложения. Путь формируется автоматически на основе параметров Company Name и Product Name в настройках проекта. Для проверки можно вывести значение persistentDataPath через Debug.Log и открыть его в проводнике для просмотра всех сохранённых файлов.

Где Unity хранит PlayerPrefs на macOS и как их проверить?

На macOS PlayerPrefs сохраняются в бинарный файл в директории ~/Library/Preferences/ИмяКомпании.ИмяПриложения.plist. Файл можно просматривать через Finder или использовать терминал с командами типа defaults read для анализа содержимого. Этот метод позволяет проверять сохранённые настройки или прогресс без запуска приложения.

Можно ли получить доступ к файлам сохранений Unity на Android без рута?

Да, при использовании Application.persistentDataPath на Android доступ к файлам можно получить через adb с командой run-as ИмяПакета. Это позволяет просматривать содержимое каталога /data/data/ИмяПакета/files и копировать файлы на ПК для анализа. Такой способ работает на устройствах без root-права, если используется идентификатор пакета приложения.

Какая структура папок сохраняется при сборке Unity под Linux?

На Linux persistentDataPath обычно располагается в домашней директории пользователя. Стандартные пути: /home/ИмяПользователя/.config/ИмяКомпании/ИмяПриложения и альтернативный ~/.local/share/ИмяКомпании/ИмяПриложения. Рекомендуется создавать отдельные подпапки внутри каталога для разных типов данных: saves, profiles, cache, чтобы проще отслеживать изменения и управлять файлами между версиями приложения.

Как правильно структурировать данные внутри persistentDataPath для iOS?

На iOS Unity создаёт директорию в контейнере приложения, обычно в /var/mobile/Containers/Data/Application/UUID/Documents или Library. Для упрощения работы с файлами рекомендуется внутри persistentDataPath создавать отдельные подпапки: например, saves для игровых прогрессов, userdata для пользовательских настроек и cache для временных данных. Это облегчает тестирование на симуляторе, перенос данных между сборками и поиск конкретных файлов при отладке.

Ссылка на основную публикацию