Я использую статический класс с несколькими статическими переменными для сохранения таких свойств, как «currentPlayer», «currentLevel», «currentScore» и т. Д. В игре. Они называются очень часто на протяжении всего игрового потока. Но не часто в кадре. Весь этот класс ссылается более 100 раз в разных точках, а также несколько раз в одном месте. Я хочу знать, подходит ли это подход или я должен использовать PlayerPrefs, или может быть другой хороший подход? Просто упомянуть, что эти переменные являются временными и их не нужно сохранять, но их нужно сохранять взад и вперед в разных игровых сценах. Игра предназначена для мобильных телефонов с целевым объемом 512 МБ оперативной памяти и низким процессором. ТИАИспользование PlayerPrefs vs staticVariable в единстве
ответ
Если эти переменные значения, которые должны быть сохранены, такие как игрок забивает, в настройках плеера, такие как объем, уровень затем использовать PlayerPrefs
.Using PlayerPrefs
, как убить двух зайцев одним выстрелом. Если вы используете переменную static
для хранения таких значений, вам все равно нужно сохранить эти значения в какой-то момент с PlayerPrefs
, а это значит, что теперь вы используете переменную static
и PlayerPrefs
.
Если эти переменные являются значениями, которые не нужно сохранять, используйте переменную static
.
Спасибо @Programmer –
Я думаю, что подход Unity должен использовать «Scriptable Objects», если вы не хотите сохранять эти данные. вы можете установить эти переменные в редакторе, а затем использовать их в игре или изменить их в игре.
Стоит немного уточнить ответ программиста, что статические или классные переменные сохраняются на протяжении всего сеанса. По мере удаления объектов класса или изменения сцены вы все равно получите доступ к этим значениям. PlayerPrefs похож на следующий уровень, который фактически записывается в энергонезависимое место на устройстве.
Звучит отлично. PlayerPrefs - это не одно и то же; который используется для загрузки/сохранения таких значений. Использование одноэлементного паттерна немного условно, но я не думаю, что это конец света. – Droppy