Разбор как работать с PlayerPrefs в Unity 5
В этом уроке мы разберем, как работать с PlayerPrefs в Unity 5 и выгрузим из них данные. Для начала необходимо разобраться, что такое PlayerPrefs и для чего они вообще нужны.
Что такое PlayerPrefs
PlayerPrefs - это класс, для работы с нашими данными, которые мы хотим сохранять или переносить. Данные, которые мы заносим в PlayerPrefs хранятся в разных местах для разных устройств. Например, в Web приложениях, которые мы запускаем на Windows они хранятся в %APPDATA%\Unity\WebPlayerPrefs, а обычные приложения сохраняют себя в реестр (HKEY_CURRENT_USER\Software\[Название компании]\[Название продукта]). PlayerPrefs довольно небезопасный способ хранения данных, поэтому их в основном применяют для сохранения настроек и чего-то неважного, чтоб это не влияло на игру.
Но можно модифицировать данные, которые мы заносим в PlayerPrefs для того, чтоб их изменение видилось и не применялось. Например, можно использовать шифрование, и тогда все данные будут представляться результатами шифрования. После этого чтоб их получить, нужно расшифровать их в коде игры.
Как работать с PlayerPrefs
Для этого напишем небольшой скрипт в SaveController , который сохранял бы скорость и загружал её вновь, если она уже есть.
public class SaveController : MonoBehaviour { public float Speed; private void Start() { //Проверим наличие нашего ключа в реестре if (PlayerPrefs.HasKey("PrefName")) { Speed=PlayerPrefs.GetInt("PrefName"); //Так же мы можем удалить ключ //Вписав PlayerPrefs.DeleteKey(ключ) //или удалить все, написав //PlayerPrefs.DeleteAll(); //Не забывайте сохранить изменения ключей } } //OnMouseDown будет работать если на объекте есть коллайдер private void OnMouseDown() { //Установим новые данные //Запишем новое значение PrefName PlayerPrefs.SetInt("PrefName", 5); //Сохраним внесенные изменения //Без этой команды сохранение не произойдет PlayerPrefs.Save(); } }
Теперь при запуске нашей игры и нажатия на объект, который имеет в компонентах SaveController мы установим новое значение в реестр. А при перезапуске игры мы выгрузим его. В итоге этого урока мы разобрали, как работать с PlayerPrefs в Unity 5 и выгрузили из них данные.