Вообще один из самых удобных механизмов в Unity. Можно конечно пользоваться файлами и файловой системой, но тогда нужно помнить нюансы для каждой платформы под который разрабатывается проект или библиотека. Так как скажем в том же webgl что-то писать по путям — нельзя. А с префсами. Нужен тебе бекап списка регистрации в формате csv (проект на устройство которое в наших руках, поэтому полезно такое локальное сохранение).
Написал вот такой небольшой класс:
using System;и вуаля. Хочешь в веб пихай решение, хочешь на айос, хочешь на андроид, хочешь на винду.
using UnityEngine;
public class LocalBackupRegistrationService : IRegistrationService
{
private const string PrefsKey = "LocalBackupData";
private const string Separator = ";";
public void Send(RegistrationData data, Action onSuccess, Action onError)
{
string strData;
strData = PlayerPrefs.HasKey(PrefsKey) ? PlayerPrefs.GetString(PrefsKey) : $"phone{Separator}email{Separator}fullname";
strData += $"\n{data.phone}{Separator}{data.email}{Separator}{data.fullname}";
PlayerPrefs.SetString(PrefsKey, strData);
PlayerPrefs.Save();
}
public string GetData()
{
return PlayerPrefs.HasKey(PrefsKey) ? "" : PlayerPrefs.GetString(PrefsKey);
}
}
И да, веб решения тоже на стендах бывают удобны, так как их на самом деле очень удобно обновлять on the fly при наличии на стенде интернета. Понятно что такое сохранение полезно, только если мы контролируем устройство, но всё равно. Для того же самого сохранения состояния игры. Пользуешься префсами и не паришься. Где надо — это файлы в файловой системе, где надо это локал сторадж браузера)
#сниппет