PlayerPrefs
класс в UnityEngine
Выполнено в:UnityEngine.CoreModule
Описание
PlayerPrefs — это класс, хранящий настройки игрока между игровыми сеансами. Он может записывать строковые, вещественные и целочисленные значения в реестр платформы пользователя.
Unity хранит PlayerPrefs в локальном реестре без шифрования. Не используйте данные PlayerPrefs для хранения конфиденциальной информации.
Способ хранения данных PlayerPrefs в Unity зависит от операционной системы, в которой работает приложение. В путях к файлам на этой странице ExampleCompanyName, ExampleProductName и ExampleBundleIdentifier обозначают имена, заданные в разделе Unity Настройки Игрока.
Расположение хранилища Standalone Player
- Android: /data/data/pkg-name/shared_prefs/pkg-name.v2.playerprefs.xml.
Примечания:
- Unity использует SharedPreferences API для доступа к данным
PlayerPrefsи SharedPreferences.Editor API для их модификации. - C#, Android Java и нативный код могут получить доступ к данным
PlayerPrefs.
- iOS: Использует [NSUserDefaults standardUserDefaults] API хранить PlayerPrefs данные.
- Linux: ~/.config/unity3d/ExampleCompanyName/ExampleProductName
- macOS: ~/Library/Preferences/ExampleBundleIdentifier.plistЗначение по умолчанию ExampleBundleIdentifier является com.ExampleCompanyName.ExampleProductName. Переопределить это значение из macOS Настройки плеера.
- Веб: Unity хранит до 1МБ PlayerPrefs данные с помощью браузера IndexedDB API. Более подробную информацию см. IndexedDB.
- Windows: Computer\HKEY_CURRENT_USER\Software\ExampleCompanyName\ExampleProductName в редакторе реестра.
- Windows Универсальная платформа: %userprofile%\AppData\Local\Packages\[ProductPackageId]\LocalState\playerprefs.dat
Место хранения режима воспроизведения в редакторе
- macOS: ~/Library/Preferences/com.ExampleCompanyName.ExampleProductName.plist
- Windows: Computer\HKEY_CURRENT_USER\Software\Unity\UnityEditor\ExampleCompanyName\ExampleProductName Обратите внимание, что Windows использует имена ключей из приложения PlayerPrefs как хэшированный идентификатор. Например, Unity добавляет a DeckBase строка для хешированного имени ключа (например, h3232628825) для создания DeckBase_h3232628825. Unity хеширует имена, потому что:
- Позволяет Unity хранить имена ключей с учетом регистра.
- Предотвращает конфликты имен с данными, которые приложение хранит вне PlayerPrefs.
- Обеспечивает использование PlayerPrefs API для доступа к значениям и их изменения.
Приложение игнорирует расширение.
Статические методы
| Метод | Описание |
|---|---|
| DeleteAll | Удаляет все ключи и значения из настроек. Используйте с осторожностью. |
| DeleteKey | Удаляет указанный ключ из PlayerPrefs. Если ключ не существует, DeleteKey не имеет никакого влияния. |
| GetFloat | Возвращает значение с плавающей запятой, которое соответствует ключу в настройках проигрывателя. |
| GetInt | Получает int значение, которое соответствует ключу в настройках проигрывателя. |
| GetString | Получает строку, соответствующую ключу в настройках проигрывателя. |
| HasKey | Возвращает true, если заданный ключ существует в PlayerPrefs, в противном случае возвращает false. |
| Save | Сохраняет все измененные настройки. |
| SetFloat | Устанавливается значение с плавающей запятой настройки, идентифицируемой данным ключом. Вы можете использовать PlayerPrefs.GetFloat для получения этого значения. |
| SetInt | Задает одно целое значение для настройки, идентифицируемой данным ключом. Вы можете использовать PlayerPrefs.GetInt для получения этого значения. |
| SetString | Задает одно строковое значение для настройки, идентифицируемой данным ключом. Вы можете использовать PlayerPrefs.GetString для получения этого значения. |